Merge branch 'development' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into blood_pressure
Conflicts: lib/pages/parent_categorise_page.dart lib/pages/sub_categorise_page.dartmerge-requests/389/head
commit
f1c2dbbbfc
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
@ -0,0 +1,85 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"questionEN": "Is the test intended for travel?",
|
||||
"questionAR": "هل تجري التحليل بغرض السفر؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"questionEN": "Coming from outside KSA within last 2 weeks?",
|
||||
"questionAR": "هل قدمت من خارج المملكة خلال الأسبوعين الماضيين؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"questionEN": "Do you currently have fever?",
|
||||
"questionAR": "هل تعاني حاليا من حرارة؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"questionEN": "Did you have fever in last 2 weeks?",
|
||||
"questionAR": "هل عانيت من حرارة في الأسبوعين الماضيين؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"questionEN": "Do you have a sore throat?",
|
||||
"questionAR": "هل لديك التهاب في الحلق؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"questionEN": "Do you have a runny nose?",
|
||||
"questionAR": "هل لديك سيلان بالأنف؟"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"questionEN": "Do you have a cough?",
|
||||
"questionAR": "هل لديك سعال؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"questionEN": "Do you have shortness of breath?",
|
||||
"questionAR": "هل تعانين من ضيق في التنفس؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"questionEN": "Do you have nausea?",
|
||||
"questionAR": "هل تعانين من غثيان؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"questionEN": "Do you have vomiting?",
|
||||
"questionAR": "هل تعاني من القيء؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"questionEN": "Do you have a headache?",
|
||||
"questionAR": "هل تعاني من صداع في الرأس؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"questionEN": "Do you have muscle pain?",
|
||||
"questionAR": "هل تعانين من آلام عضلية؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"questionEN": "Do you have joint pain?",
|
||||
"questionAR": "هل تعانين من آلام المفاصل؟",
|
||||
"ans": 2
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"questionEN": "Do you have diarrhea?",
|
||||
"questionAR": "هل لديك اسهال؟",
|
||||
"ans": 2
|
||||
}
|
||||
]
|
||||
@ -1 +1 @@
|
||||
269226e53e3ba1b1460fd3df51f89f77
|
||||
e52eba3667a38bec777870899c15ae7d
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,319 @@
|
||||
class AmbulanceRequestOrdersModel {
|
||||
String statusText;
|
||||
int paymentStatus;
|
||||
dynamic clientRequestid;
|
||||
dynamic paymentStatusText;
|
||||
dynamic projectName;
|
||||
String nearestProjectName;
|
||||
double paymentAmount;
|
||||
WFOrder wFOrder;
|
||||
String serviceText;
|
||||
bool isSentForApproval;
|
||||
int exaCartOrderId;
|
||||
bool isTimer;
|
||||
int timeSeconds;
|
||||
int totalPendingSeconds;
|
||||
int timeMinute;
|
||||
int timeHour;
|
||||
int timeTotalSeconds;
|
||||
int timeTotalMinute;
|
||||
int timeTotalHour;
|
||||
dynamic approvalStatus;
|
||||
bool isActive;
|
||||
int clickButton;
|
||||
dynamic orderHistory;
|
||||
String pickupLocation;
|
||||
String dropOffLocation;
|
||||
String clinicName;
|
||||
String doctorName;
|
||||
String branch;
|
||||
String time;
|
||||
dynamic notes;
|
||||
int id;
|
||||
String patientId;
|
||||
int patientOutSa;
|
||||
bool isOutPatient;
|
||||
int projectId;
|
||||
int nearestProjectId;
|
||||
dynamic longitude;
|
||||
dynamic latitude;
|
||||
dynamic appointmentNo;
|
||||
dynamic dischargeId;
|
||||
int statusId;
|
||||
int serviceId;
|
||||
int channel;
|
||||
Orderpayment orderpayment;
|
||||
dynamic orderselectedservice;
|
||||
dynamic wforder;
|
||||
dynamic orderapprovalobj;
|
||||
String created;
|
||||
dynamic createdBy;
|
||||
dynamic modified;
|
||||
dynamic modifiedBy;
|
||||
bool isDeleted;
|
||||
|
||||
AmbulanceRequestOrdersModel(
|
||||
{this.statusText,
|
||||
this.paymentStatus,
|
||||
this.clientRequestid,
|
||||
this.paymentStatusText,
|
||||
this.projectName,
|
||||
this.nearestProjectName,
|
||||
this.paymentAmount,
|
||||
this.wFOrder,
|
||||
this.serviceText,
|
||||
this.isSentForApproval,
|
||||
this.exaCartOrderId,
|
||||
this.isTimer,
|
||||
this.timeSeconds,
|
||||
this.totalPendingSeconds,
|
||||
this.timeMinute,
|
||||
this.timeHour,
|
||||
this.timeTotalSeconds,
|
||||
this.timeTotalMinute,
|
||||
this.timeTotalHour,
|
||||
this.approvalStatus,
|
||||
this.isActive,
|
||||
this.clickButton,
|
||||
this.orderHistory,
|
||||
this.pickupLocation,
|
||||
this.dropOffLocation,
|
||||
this.clinicName,
|
||||
this.doctorName,
|
||||
this.branch,
|
||||
this.time,
|
||||
this.notes,
|
||||
this.id,
|
||||
this.patientId,
|
||||
this.patientOutSa,
|
||||
this.isOutPatient,
|
||||
this.projectId,
|
||||
this.nearestProjectId,
|
||||
this.longitude,
|
||||
this.latitude,
|
||||
this.appointmentNo,
|
||||
this.dischargeId,
|
||||
this.statusId,
|
||||
this.serviceId,
|
||||
this.channel,
|
||||
this.orderpayment,
|
||||
this.orderselectedservice,
|
||||
this.wforder,
|
||||
this.orderapprovalobj,
|
||||
this.created,
|
||||
this.createdBy,
|
||||
this.modified,
|
||||
this.modifiedBy,
|
||||
this.isDeleted});
|
||||
|
||||
AmbulanceRequestOrdersModel.fromJson(Map<String, dynamic> json) {
|
||||
statusText = json['statusText'];
|
||||
paymentStatus = json['paymentStatus'];
|
||||
clientRequestid = json['clientRequestid'];
|
||||
paymentStatusText = json['paymentStatusText'];
|
||||
projectName = json['projectName'];
|
||||
nearestProjectName = json['nearestProjectName'];
|
||||
paymentAmount = json['paymentAmount'];
|
||||
wFOrder = json['wF_order'] != null ? new WFOrder.fromJson(json['wF_order']) : null;
|
||||
serviceText = json['serviceText'];
|
||||
isSentForApproval = json['isSentForApproval'];
|
||||
exaCartOrderId = json['exaCart_OrderId'];
|
||||
isTimer = json['isTimer'];
|
||||
timeSeconds = json['timeSeconds'];
|
||||
totalPendingSeconds = json['totalPendingSeconds'];
|
||||
timeMinute = json['timeMinute'];
|
||||
timeHour = json['timeHour'];
|
||||
timeTotalSeconds = json['timeTotalSeconds'];
|
||||
timeTotalMinute = json['timeTotalMinute'];
|
||||
timeTotalHour = json['timeTotalHour'];
|
||||
approvalStatus = json['approvalStatus'];
|
||||
isActive = json['isActive'];
|
||||
clickButton = json['clickButton'];
|
||||
orderHistory = json['orderHistory'];
|
||||
pickupLocation = json['pickupLocation'];
|
||||
dropOffLocation = json['dropOffLocation'];
|
||||
clinicName = json['clinicName'];
|
||||
doctorName = json['doctorName'];
|
||||
branch = json['branch'];
|
||||
time = json['time'];
|
||||
notes = json['notes'];
|
||||
id = json['id'];
|
||||
patientId = json['patientId'];
|
||||
patientOutSa = json['patientOutSa'];
|
||||
isOutPatient = json['isOutPatient'];
|
||||
projectId = json['projectId'];
|
||||
nearestProjectId = json['nearestProjectId'];
|
||||
longitude = json['longitude'];
|
||||
latitude = json['latitude'];
|
||||
appointmentNo = json['appointmentNo'];
|
||||
dischargeId = json['dischargeId'];
|
||||
statusId = json['statusId'];
|
||||
serviceId = json['serviceId'];
|
||||
channel = json['channel'];
|
||||
orderpayment = json['orderpayment'] != null ? new Orderpayment.fromJson(json['orderpayment']) : null;
|
||||
orderselectedservice = json['orderselectedservice'];
|
||||
wforder = json['wforder'];
|
||||
orderapprovalobj = json['orderapprovalobj'];
|
||||
created = json['created'];
|
||||
createdBy = json['createdBy'];
|
||||
modified = json['modified'];
|
||||
modifiedBy = json['modifiedBy'];
|
||||
isDeleted = json['isDeleted'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['statusText'] = this.statusText;
|
||||
data['paymentStatus'] = this.paymentStatus;
|
||||
data['clientRequestid'] = this.clientRequestid;
|
||||
data['paymentStatusText'] = this.paymentStatusText;
|
||||
data['projectName'] = this.projectName;
|
||||
data['nearestProjectName'] = this.nearestProjectName;
|
||||
data['paymentAmount'] = this.paymentAmount;
|
||||
if (this.wFOrder != null) {
|
||||
data['wF_order'] = this.wFOrder.toJson();
|
||||
}
|
||||
data['serviceText'] = this.serviceText;
|
||||
data['isSentForApproval'] = this.isSentForApproval;
|
||||
data['exaCart_OrderId'] = this.exaCartOrderId;
|
||||
data['isTimer'] = this.isTimer;
|
||||
data['timeSeconds'] = this.timeSeconds;
|
||||
data['totalPendingSeconds'] = this.totalPendingSeconds;
|
||||
data['timeMinute'] = this.timeMinute;
|
||||
data['timeHour'] = this.timeHour;
|
||||
data['timeTotalSeconds'] = this.timeTotalSeconds;
|
||||
data['timeTotalMinute'] = this.timeTotalMinute;
|
||||
data['timeTotalHour'] = this.timeTotalHour;
|
||||
data['approvalStatus'] = this.approvalStatus;
|
||||
data['isActive'] = this.isActive;
|
||||
data['clickButton'] = this.clickButton;
|
||||
data['orderHistory'] = this.orderHistory;
|
||||
data['pickupLocation'] = this.pickupLocation;
|
||||
data['dropOffLocation'] = this.dropOffLocation;
|
||||
data['clinicName'] = this.clinicName;
|
||||
data['doctorName'] = this.doctorName;
|
||||
data['branch'] = this.branch;
|
||||
data['time'] = this.time;
|
||||
data['notes'] = this.notes;
|
||||
data['id'] = this.id;
|
||||
data['patientId'] = this.patientId;
|
||||
data['patientOutSa'] = this.patientOutSa;
|
||||
data['isOutPatient'] = this.isOutPatient;
|
||||
data['projectId'] = this.projectId;
|
||||
data['nearestProjectId'] = this.nearestProjectId;
|
||||
data['longitude'] = this.longitude;
|
||||
data['latitude'] = this.latitude;
|
||||
data['appointmentNo'] = this.appointmentNo;
|
||||
data['dischargeId'] = this.dischargeId;
|
||||
data['statusId'] = this.statusId;
|
||||
data['serviceId'] = this.serviceId;
|
||||
data['channel'] = this.channel;
|
||||
if (this.orderpayment != null) {
|
||||
data['orderpayment'] = this.orderpayment.toJson();
|
||||
}
|
||||
data['orderselectedservice'] = this.orderselectedservice;
|
||||
data['wforder'] = this.wforder;
|
||||
data['orderapprovalobj'] = this.orderapprovalobj;
|
||||
data['created'] = this.created;
|
||||
data['createdBy'] = this.createdBy;
|
||||
data['modified'] = this.modified;
|
||||
data['modifiedBy'] = this.modifiedBy;
|
||||
data['isDeleted'] = this.isDeleted;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class WFOrder {
|
||||
dynamic wfButtonsDTO;
|
||||
int id;
|
||||
int orderId;
|
||||
int previousStep;
|
||||
int nextStep;
|
||||
int serviceId;
|
||||
dynamic order;
|
||||
String created;
|
||||
dynamic createdBy;
|
||||
dynamic modified;
|
||||
dynamic modifiedBy;
|
||||
bool isDeleted;
|
||||
|
||||
WFOrder({this.wfButtonsDTO, this.id, this.orderId, this.previousStep, this.nextStep, this.serviceId, this.order, this.created, this.createdBy, this.modified, this.modifiedBy, this.isDeleted});
|
||||
|
||||
WFOrder.fromJson(Map<String, dynamic> json) {
|
||||
wfButtonsDTO = json['wf_ButtonsDTO'];
|
||||
id = json['id'];
|
||||
orderId = json['orderId'];
|
||||
previousStep = json['previousStep'];
|
||||
nextStep = json['nextStep'];
|
||||
serviceId = json['serviceId'];
|
||||
order = json['order'];
|
||||
created = json['created'];
|
||||
createdBy = json['createdBy'];
|
||||
modified = json['modified'];
|
||||
modifiedBy = json['modifiedBy'];
|
||||
isDeleted = json['isDeleted'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['wf_ButtonsDTO'] = this.wfButtonsDTO;
|
||||
data['id'] = this.id;
|
||||
data['orderId'] = this.orderId;
|
||||
data['previousStep'] = this.previousStep;
|
||||
data['nextStep'] = this.nextStep;
|
||||
data['serviceId'] = this.serviceId;
|
||||
data['order'] = this.order;
|
||||
data['created'] = this.created;
|
||||
data['createdBy'] = this.createdBy;
|
||||
data['modified'] = this.modified;
|
||||
data['modifiedBy'] = this.modifiedBy;
|
||||
data['isDeleted'] = this.isDeleted;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Orderpayment {
|
||||
int id;
|
||||
int orderId;
|
||||
dynamic clientRequestId;
|
||||
double totalAmount;
|
||||
int paymentStatus;
|
||||
dynamic order;
|
||||
String created;
|
||||
dynamic createdBy;
|
||||
dynamic modified;
|
||||
dynamic modifiedBy;
|
||||
bool isDeleted;
|
||||
|
||||
Orderpayment({this.id, this.orderId, this.clientRequestId, this.totalAmount, this.paymentStatus, this.order, this.created, this.createdBy, this.modified, this.modifiedBy, this.isDeleted});
|
||||
|
||||
Orderpayment.fromJson(Map<String, dynamic> json) {
|
||||
id = json['id'];
|
||||
orderId = json['orderId'];
|
||||
clientRequestId = json['clientRequestId'];
|
||||
totalAmount = json['totalAmount'];
|
||||
paymentStatus = json['paymentStatus'];
|
||||
order = json['order'];
|
||||
created = json['created'];
|
||||
createdBy = json['createdBy'];
|
||||
modified = json['modified'];
|
||||
modifiedBy = json['modifiedBy'];
|
||||
isDeleted = json['isDeleted'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['id'] = this.id;
|
||||
data['orderId'] = this.orderId;
|
||||
data['clientRequestId'] = this.clientRequestId;
|
||||
data['totalAmount'] = this.totalAmount;
|
||||
data['paymentStatus'] = this.paymentStatus;
|
||||
data['order'] = this.order;
|
||||
data['created'] = this.created;
|
||||
data['createdBy'] = this.createdBy;
|
||||
data['modified'] = this.modified;
|
||||
data['modifiedBy'] = this.modifiedBy;
|
||||
data['isDeleted'] = this.isDeleted;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,200 @@
|
||||
import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
|
||||
|
||||
class PatientER_RC {
|
||||
double versionID;
|
||||
int channel;
|
||||
int languageID;
|
||||
String iPAdress;
|
||||
String generalid;
|
||||
bool patientOutSA;
|
||||
String sessionID;
|
||||
bool isDentalAllowedBackend;
|
||||
int deviceTypeID;
|
||||
String patientID;
|
||||
String tokenID;
|
||||
int patientTypeID;
|
||||
int patientType;
|
||||
int orderServiceID;
|
||||
String patientIdentificationID;
|
||||
dynamic patientOutSa;
|
||||
int projectID;
|
||||
int lineItemNo;
|
||||
TransportationDetails transportationDetails;
|
||||
PatientERTransportationMethod patientERTransportationMethod;
|
||||
|
||||
PatientER_RC(
|
||||
{this.versionID,
|
||||
this.channel,
|
||||
this.languageID,
|
||||
this.iPAdress,
|
||||
this.generalid,
|
||||
this.patientOutSA,
|
||||
this.sessionID,
|
||||
this.isDentalAllowedBackend,
|
||||
this.deviceTypeID,
|
||||
this.patientID,
|
||||
this.tokenID,
|
||||
this.patientTypeID,
|
||||
this.patientType,
|
||||
this.orderServiceID,
|
||||
this.patientIdentificationID,
|
||||
this.patientOutSa,
|
||||
this.projectID,
|
||||
this.lineItemNo,
|
||||
this.transportationDetails});
|
||||
|
||||
PatientER_RC.fromJson(Map<String, dynamic> json) {
|
||||
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'];
|
||||
patientID = json['PatientID'];
|
||||
tokenID = json['TokenID'];
|
||||
patientTypeID = json['PatientTypeID'];
|
||||
patientType = json['PatientType'];
|
||||
orderServiceID = json['OrderServiceID'];
|
||||
patientIdentificationID = json['PatientIdentificationID'];
|
||||
patientOutSa = json['patientOutSa'];
|
||||
projectID = json['projectID'];
|
||||
lineItemNo = json['lineItemNo'];
|
||||
transportationDetails = json['transportationDetails'] != null
|
||||
? new TransportationDetails.fromJson(json['transportationDetails'])
|
||||
: null;
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
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;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['TokenID'] = this.tokenID;
|
||||
data['PatientTypeID'] = this.patientTypeID;
|
||||
data['PatientType'] = this.patientType;
|
||||
data['OrderServiceID'] = this.orderServiceID;
|
||||
data['PatientIdentificationID'] = this.patientIdentificationID;
|
||||
data['patientOutSa'] = this.patientOutSa;
|
||||
data['projectID'] = this.projectID;
|
||||
data['lineItemNo'] = this.lineItemNo;
|
||||
if (this.transportationDetails != null) {
|
||||
data['transportationDetails'] = this.transportationDetails.toJson();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class TransportationDetails {
|
||||
int direction;
|
||||
int haveAppointment;
|
||||
int tripType;
|
||||
int pickupUrgency;
|
||||
int pickupSpot;
|
||||
String pickupDateTime;
|
||||
String transportationType;
|
||||
int ambulate;
|
||||
String notes;
|
||||
int requesterFileNo;
|
||||
String requesterMobileNo;
|
||||
bool requesterIsOutSA;
|
||||
String pickupLocationName;
|
||||
String dropoffLocationName;
|
||||
String pickupLatitude;
|
||||
String pickupLongitude;
|
||||
String dropoffLatitude;
|
||||
String dropoffLongitude;
|
||||
String appointmentNo;
|
||||
String appointmentClinicName;
|
||||
String appointmentDoctorName;
|
||||
String appointmentBranch;
|
||||
String appointmentTime;
|
||||
|
||||
TransportationDetails(
|
||||
{this.direction,
|
||||
this.haveAppointment,
|
||||
this.tripType,
|
||||
this.pickupUrgency,
|
||||
this.pickupSpot,
|
||||
this.pickupDateTime,
|
||||
this.transportationType,
|
||||
this.ambulate,
|
||||
this.notes,
|
||||
this.requesterFileNo,
|
||||
this.requesterMobileNo,
|
||||
this.requesterIsOutSA,
|
||||
this.pickupLocationName,
|
||||
this.dropoffLocationName,
|
||||
this.pickupLatitude,
|
||||
this.pickupLongitude,
|
||||
this.dropoffLatitude,
|
||||
this.dropoffLongitude,
|
||||
this.appointmentNo,
|
||||
this.appointmentClinicName,
|
||||
this.appointmentDoctorName,
|
||||
this.appointmentBranch,
|
||||
this.appointmentTime});
|
||||
|
||||
TransportationDetails.fromJson(Map<String, dynamic> json) {
|
||||
direction = json['direction'];
|
||||
haveAppointment = json['haveAppointment'];
|
||||
tripType = json['tripType'];
|
||||
pickupUrgency = json['pickupUrgency'];
|
||||
pickupSpot = json['pickupSpot'];
|
||||
pickupDateTime = json['pickupDateTime'];
|
||||
transportationType = json['transportationType'];
|
||||
ambulate = json['ambulate'];
|
||||
notes = json['notes'];
|
||||
requesterFileNo = json['requesterFileNo'];
|
||||
requesterMobileNo = json['requesterMobileNo'];
|
||||
requesterIsOutSA = json['requesterIsOutSA'];
|
||||
pickupLocationName = json['pickupLocationName'];
|
||||
dropoffLocationName = json['dropoffLocationName'];
|
||||
pickupLatitude = json['pickup_Latitude'];
|
||||
pickupLongitude = json['pickup_Longitude'];
|
||||
dropoffLatitude = json['dropoff_Latitude'];
|
||||
dropoffLongitude = json['dropoff_Longitude'];
|
||||
appointmentNo = json['appointmentNo'];
|
||||
appointmentClinicName = json['appointmentClinicName'];
|
||||
appointmentDoctorName = json['appointmentDoctorName'];
|
||||
appointmentBranch = json['appointmentBranch'];
|
||||
appointmentTime = json['appointmentTime'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['direction'] = this.direction;
|
||||
data['haveAppointment'] = this.haveAppointment;
|
||||
data['tripType'] = this.tripType;
|
||||
data['pickupUrgency'] = this.pickupUrgency;
|
||||
data['pickupSpot'] = this.pickupSpot;
|
||||
data['pickupDateTime'] = this.pickupDateTime;
|
||||
data['transportationType'] = this.transportationType;
|
||||
data['ambulate'] = this.ambulate;
|
||||
data['notes'] = this.notes;
|
||||
data['requesterFileNo'] = this.requesterFileNo;
|
||||
data['requesterMobileNo'] = this.requesterMobileNo;
|
||||
data['requesterIsOutSA'] = this.requesterIsOutSA;
|
||||
data['pickupLocationName'] = this.pickupLocationName;
|
||||
data['dropoffLocationName'] = this.dropoffLocationName;
|
||||
data['pickup_Latitude'] = this.pickupLatitude;
|
||||
data['pickup_Longitude'] = this.pickupLongitude;
|
||||
data['dropoff_Latitude'] = this.dropoffLatitude;
|
||||
data['dropoff_Longitude'] = this.dropoffLongitude;
|
||||
data['appointmentNo'] = this.appointmentNo;
|
||||
data['appointmentClinicName'] = this.appointmentClinicName;
|
||||
data['appointmentDoctorName'] = this.appointmentDoctorName;
|
||||
data['appointmentBranch'] = this.appointmentBranch;
|
||||
data['appointmentTime'] = this.appointmentTime;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -1,79 +1,56 @@
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
class PatientERTransportationMethod {
|
||||
dynamic id;
|
||||
DateTime createDate;
|
||||
DateTime lastEditDate;
|
||||
dynamic createdBy;
|
||||
dynamic lastEditBy;
|
||||
bool isActive;
|
||||
String title;
|
||||
String titleAR;
|
||||
int id;
|
||||
String serviceID;
|
||||
int orderServiceID;
|
||||
String text;
|
||||
String textN;
|
||||
dynamic price;
|
||||
dynamic isDefault;
|
||||
dynamic visibility;
|
||||
dynamic durationId;
|
||||
String description;
|
||||
String descriptionAR;
|
||||
dynamic totalPrice;
|
||||
dynamic vAT;
|
||||
dynamic priceVAT;
|
||||
dynamic priceTotal;
|
||||
bool isEnabled;
|
||||
int orderId;
|
||||
int quantity;
|
||||
|
||||
PatientERTransportationMethod(
|
||||
{
|
||||
this.id,
|
||||
this.createDate,
|
||||
this.lastEditDate,
|
||||
this.createdBy,
|
||||
this.lastEditBy,
|
||||
this.isActive,
|
||||
this.title,
|
||||
this.titleAR,
|
||||
{this.id,
|
||||
this.serviceID,
|
||||
this.orderServiceID,
|
||||
this.text,
|
||||
this.textN,
|
||||
this.price,
|
||||
this.isDefault,
|
||||
this.visibility,
|
||||
this.durationId,
|
||||
this.description,
|
||||
this.descriptionAR,
|
||||
this.totalPrice,
|
||||
this.vAT});
|
||||
this.priceVAT,
|
||||
this.priceTotal,
|
||||
this.isEnabled,
|
||||
this.orderId,
|
||||
this.quantity});
|
||||
|
||||
PatientERTransportationMethod.fromJson(
|
||||
Map<String, dynamic> json) {
|
||||
id = json['Id'];
|
||||
createDate = DateUtil.convertStringToDate(json['CreateDate']);
|
||||
lastEditDate = DateUtil.convertStringToDate(json['LastEditDate']);
|
||||
createdBy = json['CreatedBy'];
|
||||
lastEditBy = json['LastEditBy'];
|
||||
isActive = json['IsActive'];
|
||||
title = json['Title'];
|
||||
titleAR = json['TitleAR'];
|
||||
price = json['Price'];
|
||||
isDefault = json['isDefault'];
|
||||
visibility = json['Visibility'];
|
||||
durationId = json['DurationId'];
|
||||
description = json['Description'];
|
||||
descriptionAR = json['DescriptionAR'];
|
||||
totalPrice = json['TotalPrice'];
|
||||
vAT = json['VAT'];
|
||||
PatientERTransportationMethod.fromJson(Map<String, dynamic> json) {
|
||||
id = json['id'];
|
||||
serviceID = json['serviceID'];
|
||||
orderServiceID = json['orderServiceID'];
|
||||
text = json['text'];
|
||||
textN = json['textN'];
|
||||
price = json['price'];
|
||||
priceVAT = json['priceVAT'];
|
||||
priceTotal = json['priceTotal'];
|
||||
isEnabled = json['isEnabled'];
|
||||
orderId = json['orderId'];
|
||||
quantity = json['quantity'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Id'] = this.id;
|
||||
data['CreateDate'] = this.createDate;
|
||||
data['LastEditDate'] = this.lastEditDate;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['LastEditBy'] = this.lastEditBy;
|
||||
data['IsActive'] = this.isActive;
|
||||
data['Title'] = this.title;
|
||||
data['TitleAR'] = this.titleAR;
|
||||
data['Price'] = this.price;
|
||||
data['isDefault'] = this.isDefault;
|
||||
data['Visibility'] = this.visibility;
|
||||
data['DurationId'] = this.durationId;
|
||||
data['Description'] = this.description;
|
||||
data['DescriptionAR'] = this.descriptionAR;
|
||||
data['TotalPrice'] = this.totalPrice;
|
||||
data['VAT'] = this.vAT;
|
||||
data['id'] = this.id;
|
||||
data['serviceID'] = this.serviceID;
|
||||
data['orderServiceID'] = this.orderServiceID;
|
||||
data['text'] = this.text;
|
||||
data['textN'] = this.textN;
|
||||
data['price'] = this.price;
|
||||
data['priceVAT'] = this.priceVAT;
|
||||
data['priceTotal'] = this.priceTotal;
|
||||
data['isEnabled'] = this.isEnabled;
|
||||
data['orderId'] = this.orderId;
|
||||
data['quantity'] = this.quantity;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
class DentalProceduresModel {
|
||||
List<ListIsPatientHasOnGoingEstimation> listIsPatientHasOnGoingEstimation;
|
||||
|
||||
DentalProceduresModel({this.listIsPatientHasOnGoingEstimation});
|
||||
|
||||
DentalProceduresModel.fromJson(Map<String, dynamic> json) {
|
||||
if (json['List_IsPatientHasOnGoingEstimation'] != null) {
|
||||
listIsPatientHasOnGoingEstimation =
|
||||
new List<ListIsPatientHasOnGoingEstimation>();
|
||||
json['List_IsPatientHasOnGoingEstimation'].forEach((v) {
|
||||
listIsPatientHasOnGoingEstimation
|
||||
.add(new ListIsPatientHasOnGoingEstimation.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.listIsPatientHasOnGoingEstimation != null) {
|
||||
data['List_IsPatientHasOnGoingEstimation'] = this
|
||||
.listIsPatientHasOnGoingEstimation
|
||||
.map((v) => v.toJson())
|
||||
.toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class ListIsPatientHasOnGoingEstimation {
|
||||
dynamic setupID;
|
||||
dynamic estimationNo;
|
||||
int projectID;
|
||||
String procedureId;
|
||||
int patientID;
|
||||
int sequenceNo;
|
||||
int neededTime;
|
||||
String procedureName;
|
||||
dynamic procedureNameN;
|
||||
|
||||
ListIsPatientHasOnGoingEstimation(
|
||||
{this.setupID,
|
||||
this.estimationNo,
|
||||
this.projectID,
|
||||
this.procedureId,
|
||||
this.patientID,
|
||||
this.sequenceNo,
|
||||
this.neededTime,
|
||||
this.procedureName,
|
||||
this.procedureNameN});
|
||||
|
||||
ListIsPatientHasOnGoingEstimation.fromJson(Map<String, dynamic> json) {
|
||||
setupID = json['SetupID'];
|
||||
estimationNo = json['EstimationNo'];
|
||||
projectID = json['ProjectID'];
|
||||
procedureId = json['ProcedureId'];
|
||||
patientID = json['PatientID'];
|
||||
sequenceNo = json['sequenceNo'];
|
||||
neededTime = json['NeededTime'];
|
||||
procedureName = json['ProcedureName'];
|
||||
procedureNameN = json['ProcedureNameN'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['SetupID'] = this.setupID;
|
||||
data['EstimationNo'] = this.estimationNo;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['ProcedureId'] = this.procedureId;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['sequenceNo'] = this.sequenceNo;
|
||||
data['NeededTime'] = this.neededTime;
|
||||
data['ProcedureName'] = this.procedureName;
|
||||
data['ProcedureNameN'] = this.procedureNameN;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
||||
|
||||
class OrdersPayment extends StatefulWidget {
|
||||
@override
|
||||
_OrdersPaymentState createState() => _OrdersPaymentState();
|
||||
}
|
||||
|
||||
class _OrdersPaymentState extends State<OrdersPayment> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,355 @@
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
class LiveCareBookAppointment extends StatefulWidget {
|
||||
final dynamic clinicName;
|
||||
final dynamic liveCareClinicID;
|
||||
final dynamic liveCareServiceID;
|
||||
|
||||
LiveCareBookAppointment(
|
||||
{this.clinicName, this.liveCareClinicID, this.liveCareServiceID});
|
||||
|
||||
@override
|
||||
_LiveCareBookAppointmentState createState() =>
|
||||
_LiveCareBookAppointmentState();
|
||||
}
|
||||
|
||||
class _LiveCareBookAppointmentState extends State<LiveCareBookAppointment> {
|
||||
AppSharedPreferences sharedPref = AppSharedPreferences();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
appBarTitle: TranslationBase.of(context).bookAppo,
|
||||
isShowAppBar: true,
|
||||
isShowDecPage: false,
|
||||
body: SingleChildScrollView(
|
||||
child: Container(
|
||||
margin: EdgeInsets.all(10.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
margin: EdgeInsets.all(5.0),
|
||||
child: Text(TranslationBase.of(context).clinicAcceptLivecare,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.black,
|
||||
fontSize: 16.0,
|
||||
letterSpacing: 0.5)),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.all(15.0),
|
||||
padding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xff20bc44),
|
||||
borderRadius: BorderRadius.all(Radius.circular(8.0))),
|
||||
child: Text(TranslationBase.of(context).livecareModalTop,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.w600,
|
||||
letterSpacing: 0.5)),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.all(15.0),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/liveCare_mobile_care.svg",
|
||||
width: 150.0),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 10.0, right: 10.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
margin: EdgeInsets.only(bottom: 7.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context).whyLivecare,
|
||||
style: TextStyle(
|
||||
fontSize: 20.0,
|
||||
fontWeight: FontWeight.w600,
|
||||
letterSpacing: 1.0,
|
||||
color: Colors.black)),
|
||||
),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/ionic-ios-checkmark-circle.svg"),
|
||||
),
|
||||
Container(
|
||||
width:
|
||||
MediaQuery.of(context).size.width * 0.4,
|
||||
margin: EdgeInsets.only(
|
||||
left: 5.0, right: 5.0, bottom: 10.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context)
|
||||
.livecarePoint1,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontSize: 12.0,
|
||||
letterSpacing: 0.5,
|
||||
color: Colors.black)),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/ionic-ios-checkmark-circle.svg"),
|
||||
),
|
||||
Container(
|
||||
width:
|
||||
MediaQuery.of(context).size.width * 0.4,
|
||||
margin: EdgeInsets.only(
|
||||
left: 5.0, right: 5.0, bottom: 10.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context)
|
||||
.livecarePoint5,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontSize: 12.0,
|
||||
letterSpacing: 0.5,
|
||||
color: Colors.black)),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/ionic-ios-checkmark-circle.svg"),
|
||||
),
|
||||
Container(
|
||||
width:
|
||||
MediaQuery.of(context).size.width * 0.4,
|
||||
margin: EdgeInsets.only(
|
||||
left: 5.0, right: 5.0, bottom: 10.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context)
|
||||
.livecarePoint2,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontSize: 12.0,
|
||||
letterSpacing: 0.5,
|
||||
color: Colors.black)),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/ionic-ios-checkmark-circle.svg"),
|
||||
),
|
||||
Container(
|
||||
width:
|
||||
MediaQuery.of(context).size.width * 0.4,
|
||||
margin: EdgeInsets.only(
|
||||
left: 5.0, right: 5.0, bottom: 10.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context)
|
||||
.livecarePoint3,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontSize: 12.0,
|
||||
letterSpacing: 0.5,
|
||||
color: Colors.black)),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/ionic-ios-checkmark-circle.svg"),
|
||||
),
|
||||
Container(
|
||||
width:
|
||||
MediaQuery.of(context).size.width * 0.4,
|
||||
margin:
|
||||
EdgeInsets.only(left: 5.0, right: 5.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context)
|
||||
.livecarePoint4,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontSize: 12.0,
|
||||
letterSpacing: 0.5,
|
||||
color: Colors.black)),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
child: Text(TranslationBase.of(context).livecareSummary,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontSize: 12.0,
|
||||
letterSpacing: 0.5,
|
||||
color: Colors.black)),
|
||||
),
|
||||
Container(
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
sharedPref.setString(
|
||||
LIVECARE_CLINIC_DATA,
|
||||
widget.clinicName +
|
||||
"-" +
|
||||
widget.liveCareClinicID +
|
||||
"-" +
|
||||
widget.liveCareServiceID);
|
||||
Navigator.pop(context, "livecare");
|
||||
},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey[700],
|
||||
borderRadius:
|
||||
BorderRadius.all(Radius.circular(10.0))),
|
||||
margin: EdgeInsets.only(top: 10.0),
|
||||
padding: EdgeInsets.all(10.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 10.0, right: 10.0),
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/liveCare_logo_icon_white.svg",
|
||||
width: 70),
|
||||
),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.58,
|
||||
margin: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.fromLTRB(
|
||||
10.0, 0.0, 10.0, 0.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context)
|
||||
.bookImmediateLivecare,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: 16.0,
|
||||
letterSpacing: 0.7,
|
||||
color: Colors.white)),
|
||||
),
|
||||
Container(
|
||||
margin:
|
||||
EdgeInsets.only(top: 5.0, left: 10.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context)
|
||||
.bookVideoLivecare2,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontSize: 13.0,
|
||||
color: Colors.white)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.pop(context, "schedule");
|
||||
},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey[700],
|
||||
borderRadius:
|
||||
BorderRadius.all(Radius.circular(10.0))),
|
||||
margin: EdgeInsets.only(top: 10.0),
|
||||
padding: EdgeInsets.all(10.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 10.0, right: 10.0),
|
||||
child: Image.asset(
|
||||
"assets/images/new-design/doctor_white.png",
|
||||
width: 50),
|
||||
),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.58,
|
||||
margin: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.fromLTRB(
|
||||
28.0, 0.0, 28.0, 0.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context).noThankyou,
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: 16.0,
|
||||
letterSpacing: 0.7,
|
||||
color: Colors.white)),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(
|
||||
top: 5.0, left: 28.0, right: 28.0),
|
||||
child: Text(
|
||||
TranslationBase.of(context).visitClinic,
|
||||
textAlign: TextAlign.start,
|
||||
style: TextStyle(
|
||||
fontSize: 13.0,
|
||||
color: Colors.white)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 10.0),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.pop(context, "false");
|
||||
},
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
Text(TranslationBase.of(context).cancel,
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
letterSpacing: 0.5,
|
||||
color: Color(0xffc5272d))),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,169 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidPaymentInfoResponse.dart';
|
||||
import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidTestProceduresResponse.dart';
|
||||
import 'package:diplomaticquarterapp/pages/medical/labs/passport_update_page.dart';
|
||||
import 'package:diplomaticquarterapp/services/covid-drivethru/covid-drivethru.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.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 'covid-payment-details.dart';
|
||||
|
||||
class CovidDirveThruQuestions extends StatefulWidget {
|
||||
final String projectId;
|
||||
final List<CovidTestProceduresResponse> proceduresList;
|
||||
|
||||
CovidDirveThruQuestions({@required this.projectId, @required this.proceduresList});
|
||||
|
||||
@override
|
||||
CovidDirveThruQuestionsState createState() => CovidDirveThruQuestionsState();
|
||||
}
|
||||
|
||||
class CovidDirveThruQuestionsState extends State<CovidDirveThruQuestions> {
|
||||
List qa;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
qa = getQuestionsFromJson();
|
||||
}
|
||||
|
||||
TranslationBase localize;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
localize = TranslationBase.of(context);
|
||||
var isArabic = localize.isArabic();
|
||||
return AppScaffold(
|
||||
appBarTitle: TranslationBase.of(context).covidTest,
|
||||
isShowAppBar: true,
|
||||
body: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(20),
|
||||
child: Text(localize.covidSelectProcedure, style: TextStyle(fontSize: 17, letterSpacing: 1, fontWeight: FontWeight.bold)),
|
||||
),
|
||||
Expanded(
|
||||
child: ListView.separated(
|
||||
padding: EdgeInsets.symmetric(horizontal: 20),
|
||||
itemCount: qa.length,
|
||||
itemBuilder: (ctx, idx) {
|
||||
var obj = qa[idx];
|
||||
var qtext = isArabic ? obj["questionAR"] : obj["questionEN"];
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 10),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(qtext, style: TextStyle(fontSize: 15, letterSpacing: 1.5)),
|
||||
Row(
|
||||
children: [
|
||||
Radio<int>(
|
||||
value: 1,
|
||||
groupValue: obj["ans"],
|
||||
onChanged: (newValue) {
|
||||
setState(() {
|
||||
obj["ans"] = newValue;
|
||||
});
|
||||
}),
|
||||
Text(localize.yes),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Radio<int>(
|
||||
value: 0,
|
||||
groupValue: obj["ans"],
|
||||
onChanged: (newValue) {
|
||||
setState(() {
|
||||
obj["ans"] = newValue;
|
||||
});
|
||||
}),
|
||||
Text(localize.no),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
separatorBuilder: (ctx, idx) => Divider(height: 0.25, color: Colors.grey.withOpacity(0.5)),
|
||||
)),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
|
||||
child: FractionallySizedBox(
|
||||
widthFactor: 1,
|
||||
child: MaterialButton(
|
||||
height: 50,
|
||||
color: Theme.of(context).appBarTheme.color,
|
||||
disabledColor: Theme.of(context).appBarTheme.color.withOpacity(0.25),
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
|
||||
child: Text(
|
||||
localize.next,
|
||||
style: TextStyle(color: Colors.white, fontSize: 13, letterSpacing: 1),
|
||||
),
|
||||
onPressed: next),
|
||||
),
|
||||
),
|
||||
],
|
||||
));
|
||||
}
|
||||
|
||||
next() async {
|
||||
bool all = true;
|
||||
qa.forEach((element) {
|
||||
all = all && (element["ans"] == 1 || element["ans"] == 0);
|
||||
});
|
||||
if (all) if (qa[0]["ans"] == 1) {
|
||||
openPassportUpdatePage();
|
||||
} else {
|
||||
getPaymentInfo(context, widget.projectId);
|
||||
}
|
||||
else
|
||||
AppToast.showErrorToast(message: localize.pleaseSelectAllQuestionToContinue);
|
||||
}
|
||||
|
||||
openPassportUpdatePage() {
|
||||
Navigator.push(context, FadePage(page: PassportUpdatePage())).then((value) {
|
||||
print(value);
|
||||
if(value != null && value == true) {
|
||||
getPaymentInfo(context, widget.projectId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
List getQuestionsFromJson() {
|
||||
var questionsJson = """
|
||||
[{"id":1,"questionEN":"Is the test intended for travel?","questionAR":"هل تجري التحليل بغرض السفر؟","ans":2},{"id":2,"questionEN":"Coming from outside KSA within last 2 weeks?","questionAR":"هل قدمت من خارج المملكة خلال الأسبوعين الماضيين؟","ans":2},{"id":3,"questionEN":"Do you currently have fever?","questionAR":"هل تعاني حاليا من حرارة؟","ans":2},{"id":4,"questionEN":"Did you have fever in last 2 weeks?","questionAR":"هل عانيت من حرارة في الأسبوعين الماضيين؟","ans":2},{"id":5,"questionEN":"Do you have a sore throat?","questionAR":"هل لديك التهاب في الحلق؟","ans":2},{"id":6,"questionEN":"Do you have a runny nose?","questionAR":"هل لديك سيلان بالأنف؟"},{"id":7,"questionEN":"Do you have a cough?","questionAR":"هل لديك سعال؟","ans":2},{"id":8,"questionEN":"Do you have shortness of breath?","questionAR":"هل تعانين من ضيق في التنفس؟","ans":2},{"id":9,"questionEN":"Do you have nausea?","questionAR":"هل تعانين من غثيان؟","ans":2},{"id":10,"questionEN":"Do you have vomiting?","questionAR":"هل تعاني من القيء؟","ans":2},{"id":11,"questionEN":"Do you have a headache?","questionAR":"هل تعاني من صداع في الرأس؟","ans":2},{"id":12,"questionEN":"Do you have muscle pain?","questionAR":"هل تعانين من آلام عضلية؟","ans":2},{"id":13,"questionEN":"Do you have joint pain?","questionAR":"هل تعانين من آلام المفاصل؟","ans":2},{"id":14,"questionEN":"Do you have diarrhea?","questionAR":"هل لديك اسهال؟","ans":2}]""";
|
||||
var map = json.decode(questionsJson) as List;
|
||||
return map;
|
||||
}
|
||||
|
||||
getPaymentInfo(BuildContext context, String projectID) {
|
||||
CovidDriveThruService service = new CovidDriveThruService();
|
||||
CovidPaymentInfoResponse covidPaymentInfoResponse = new CovidPaymentInfoResponse();
|
||||
GifLoaderDialogUtils.showMyDialog(context);
|
||||
service.getCovidPaymentInformation(context, int.parse(projectID), widget.proceduresList[0].procedureID).then((res) {
|
||||
GifLoaderDialogUtils.hideDialog(context);
|
||||
if (res['MessageStatus'] == 1) {
|
||||
covidPaymentInfoResponse = CovidPaymentInfoResponse.fromJson(res['COVID19_PatientShare']);
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: CovidPaymentDetails(
|
||||
covidPaymentInfoResponse: covidPaymentInfoResponse,
|
||||
projectID: int.parse(projectID),
|
||||
proceduresList: widget.proceduresList,
|
||||
)));
|
||||
} else {}
|
||||
}).catchError((err) {
|
||||
print(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,257 @@
|
||||
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
|
||||
import 'package:diplomaticquarterapp/pages/MyAppointments/AppointmentDetails.dart';
|
||||
|
||||
import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart';
|
||||
import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/indicator.dart';
|
||||
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
|
||||
|
||||
class SchedulePage extends StatefulWidget {
|
||||
final DoctorList doctorList;
|
||||
final AppoitmentAllHistoryResultList appo;
|
||||
SchedulePage({
|
||||
this.appo,
|
||||
this.doctorList,
|
||||
});
|
||||
@override
|
||||
_SchedulePageState createState() => _SchedulePageState();
|
||||
}
|
||||
|
||||
class _SchedulePageState extends State<SchedulePage> {
|
||||
DoctorsListService service;
|
||||
PageController _pageController = PageController();
|
||||
double currentPage = 0;
|
||||
int selectedindex = 0;
|
||||
List weeks = [];
|
||||
List<DoctorScheduleResponse> doctorScheduleResponse = [];
|
||||
int weekMS = 604800 * 1000;
|
||||
DoctorList doctorList;
|
||||
List<String> freeSlots = [];
|
||||
bool isPageChange = false;
|
||||
|
||||
AppSharedPreferences sharedPref = AppSharedPreferences();
|
||||
@override
|
||||
void initState() {
|
||||
this.doctorList = widget.doctorList;
|
||||
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BaseView<MedicalViewModel>(
|
||||
onModelReady: (model) => model.getDoctorSchedule(doctorList),
|
||||
builder: (_, model, widget) => BaseView<MedicalViewModel>(
|
||||
onModelReady: (model2) => model2.getFreeSlots(doctorList),
|
||||
builder: (_, model2, widget2) {
|
||||
if (model.freeSlots.length > 0 && isPageChange == false) {
|
||||
this.freeSlots = model.freeSlots;
|
||||
this.doctorScheduleResponse = model.getDoctorScheduleList;
|
||||
|
||||
this.generateWeeksSchedules();
|
||||
}
|
||||
return AppScaffold(
|
||||
appBarTitle: TranslationBase.of(context).schedule,
|
||||
isShowAppBar: true,
|
||||
baseViewModel: model2,
|
||||
body: SizedBox(
|
||||
height: MediaQuery.of(context).size.height,
|
||||
child: Stack(
|
||||
children: [
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 40),
|
||||
child: PageView.builder(
|
||||
controller: _pageController,
|
||||
itemCount: weeks.length,
|
||||
onPageChanged: (index) {
|
||||
setState(() {
|
||||
isPageChange = true;
|
||||
this.currentPage = index.toDouble();
|
||||
});
|
||||
},
|
||||
itemBuilder: (context, index) {
|
||||
return Container(
|
||||
child: ListView.builder(
|
||||
itemCount: weeks[index].length,
|
||||
itemBuilder: (context, index2) =>
|
||||
InkWell(
|
||||
onTap: () {
|
||||
openBookAppointment(
|
||||
weeks[index][index2]);
|
||||
},
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.only(
|
||||
left: 20),
|
||||
child: Row(
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
Texts(
|
||||
weeks[index][index2]
|
||||
[
|
||||
'DayName'],
|
||||
fontSize:
|
||||
13,
|
||||
),
|
||||
Texts(
|
||||
getDayMonths(
|
||||
DateUtil
|
||||
.convertStringToDate(
|
||||
weeks[index][index2]['Date'],
|
||||
),
|
||||
),
|
||||
fontWeight:
|
||||
FontWeight.bold,
|
||||
fontSize:
|
||||
18,
|
||||
)
|
||||
],
|
||||
)
|
||||
])),
|
||||
),
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: ClipRRect(
|
||||
borderRadius:
|
||||
const BorderRadius
|
||||
.all(
|
||||
Radius.circular(
|
||||
20.0)),
|
||||
child: Container(
|
||||
padding:
|
||||
EdgeInsets.only(
|
||||
left:
|
||||
10,
|
||||
right:
|
||||
10,
|
||||
top: 20,
|
||||
bottom:
|
||||
20),
|
||||
margin: EdgeInsets.only(
|
||||
left: 20,
|
||||
right: 20,
|
||||
top: 7,
|
||||
bottom: 7),
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
weeks[index][index2]['fullDay'] ==
|
||||
false
|
||||
? BoxShadow(
|
||||
color: Colors.green,
|
||||
offset: Offset(-5, 0))
|
||||
: BoxShadow(),
|
||||
],
|
||||
borderRadius:
|
||||
const BorderRadius.all(Radius.circular(
|
||||
10.0)),
|
||||
color: Colors
|
||||
.white),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child:
|
||||
Texts(
|
||||
weeks[index][index2]
|
||||
[
|
||||
'WorkingHours'],
|
||||
fontWeight:
|
||||
FontWeight.w400,
|
||||
),
|
||||
)
|
||||
],
|
||||
))),
|
||||
)
|
||||
],
|
||||
))));
|
||||
},
|
||||
)),
|
||||
PageViewIndicator(
|
||||
isActive: true,
|
||||
currentPage: this.currentPage,
|
||||
length: weeks.length,
|
||||
)
|
||||
],
|
||||
)));
|
||||
}));
|
||||
}
|
||||
|
||||
generateWeeksSchedules() {
|
||||
this.weeks.clear();
|
||||
for (var i = 0; i < 8; i++) {
|
||||
var weekSchedule = generateNewWeekSchedule(i);
|
||||
this.markWeekFreeDays(weekSchedule);
|
||||
this.weeks.add(weekSchedule);
|
||||
}
|
||||
//print(this.weeks);
|
||||
}
|
||||
|
||||
markWeekFreeDays(schedule) {
|
||||
for (var workDay in schedule) {
|
||||
workDay['fullDay'] = !this.hasFreeSlot(workDay['Date']);
|
||||
}
|
||||
}
|
||||
|
||||
generateNewWeekSchedule(weekIndex) {
|
||||
var weekMSOffset = weekIndex * weekMS;
|
||||
|
||||
var newWeekSchedule = [];
|
||||
for (var workDay in this.doctorScheduleResponse) {
|
||||
Map<String, dynamic> newWorkDay = Map();
|
||||
newWorkDay['Date'] = DateUtil.convertDateMSToJsonDate(
|
||||
DateUtil.convertStringToDate(workDay.date).millisecondsSinceEpoch +
|
||||
weekMSOffset);
|
||||
newWorkDay['DayName'] = workDay.dayName;
|
||||
newWorkDay['WorkingHours'] = workDay.workingHours;
|
||||
newWeekSchedule.add(newWorkDay);
|
||||
}
|
||||
return newWeekSchedule;
|
||||
}
|
||||
|
||||
hasFreeSlot(String jsonDate) {
|
||||
var date = DateUtil.convertStringToDate(jsonDate);
|
||||
var scheduleDay = date;
|
||||
for (var event in this.freeSlots) {
|
||||
var date = DateUtil.convertStringToDate(event);
|
||||
var nDate = DateTime(date.year, date.month, date.day);
|
||||
|
||||
if (nDate.millisecondsSinceEpoch == scheduleDay.millisecondsSinceEpoch) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
String getDayMonths(DateTime dateTime) {
|
||||
String dateFormat =
|
||||
'${dateTime.day} ${DateUtil.getMonth(dateTime.month).toString().substring(0, 3)}';
|
||||
return dateFormat;
|
||||
}
|
||||
|
||||
openBookAppointment(selectedDate) {
|
||||
//sharedPref.setObject(DOCTOR_SCHEDULE_DATE_SEL, selectedDate);
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: AppointmentDetails(
|
||||
appo: widget.appo,
|
||||
doctorSchedule: selectedDate,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
class DoctorScheduleResponse {
|
||||
String clinicName;
|
||||
String date;
|
||||
String dayName;
|
||||
String projectName;
|
||||
String workingHours;
|
||||
|
||||
DoctorScheduleResponse(
|
||||
{this.clinicName,
|
||||
this.date,
|
||||
this.dayName,
|
||||
this.projectName,
|
||||
this.workingHours});
|
||||
|
||||
DoctorScheduleResponse.fromJson(Map<String, dynamic> json) {
|
||||
clinicName = json['ClinicName'];
|
||||
date = json['Date'];
|
||||
dayName = json['DayName'];
|
||||
projectName = json['ProjectName'];
|
||||
workingHours = json['WorkingHours'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ClinicName'] = this.clinicName;
|
||||
data['Date'] = this.date;
|
||||
data['DayName'] = this.dayName;
|
||||
data['ProjectName'] = this.projectName;
|
||||
data['WorkingHours'] = this.workingHours;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class PageViewIndicator extends StatelessWidget {
|
||||
final bool isActive;
|
||||
final int length;
|
||||
final double currentPage;
|
||||
PageViewIndicator({
|
||||
@required this.isActive,
|
||||
@required this.length,
|
||||
@required this.currentPage,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return _indicator(this.isActive);
|
||||
}
|
||||
|
||||
Widget _indicator(bool isActive) {
|
||||
return Positioned(
|
||||
top: 20,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(top: 0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
for (int i = 0; i < length; i++)
|
||||
if (i == currentPage) ...[circleBar(true)] else circleBar(false),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget circleBar(bool isActive) {
|
||||
return AnimatedContainer(
|
||||
duration: Duration(milliseconds: 150),
|
||||
margin: EdgeInsets.symmetric(horizontal: 3),
|
||||
height: isActive ? 12 : 8,
|
||||
width: isActive ? 12 : 8,
|
||||
decoration: BoxDecoration(
|
||||
color: isActive ? Colors.red : Colors.grey,
|
||||
borderRadius: BorderRadius.all(Radius.circular(12))),
|
||||
);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue