done EyeMeasurements service
parent
c01e6095f2
commit
9f06ce7d1d
@ -0,0 +1,497 @@
|
|||||||
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||||
|
|
||||||
|
class AppoimentAllHistoryResultList {
|
||||||
|
String setupID;
|
||||||
|
int projectID;
|
||||||
|
int appointmentNo;
|
||||||
|
String appointmentDate;
|
||||||
|
Null appointmentDateN;
|
||||||
|
int appointmentType;
|
||||||
|
DateTime bookDate;
|
||||||
|
dynamic patientType;
|
||||||
|
int patientID;
|
||||||
|
dynamic clinicID;
|
||||||
|
int doctorID;
|
||||||
|
String endDate;
|
||||||
|
String startTime;
|
||||||
|
String endTime;
|
||||||
|
dynamic status;
|
||||||
|
dynamic visitType;
|
||||||
|
int visitFor;
|
||||||
|
int patientStatusType;
|
||||||
|
int companyID;
|
||||||
|
int bookedBy;
|
||||||
|
String bookedOn;
|
||||||
|
int confirmedBy;
|
||||||
|
String confirmedOn;
|
||||||
|
int arrivalChangedBy;
|
||||||
|
String arrivedOn;
|
||||||
|
Null editedBy;
|
||||||
|
Null editedOn;
|
||||||
|
Null doctorName;
|
||||||
|
Null doctorNameN;
|
||||||
|
String statusDesc;
|
||||||
|
Null statusDescN;
|
||||||
|
bool vitalStatus;
|
||||||
|
Null vitalSignAppointmentNo;
|
||||||
|
int episodeID;
|
||||||
|
int actualDoctorRate;
|
||||||
|
String clinicName;
|
||||||
|
bool complainExists;
|
||||||
|
String doctorImageURL;
|
||||||
|
String doctorNameObj;
|
||||||
|
int doctorRate;
|
||||||
|
List<String> doctorSpeciality;
|
||||||
|
String doctorTitle;
|
||||||
|
int gender;
|
||||||
|
String genderDescription;
|
||||||
|
bool iSAllowOnlineCheckedIN;
|
||||||
|
bool isActiveDoctor;
|
||||||
|
bool isActiveDoctorProfile;
|
||||||
|
bool isDoctorAllowVedioCall;
|
||||||
|
bool isExecludeDoctor;
|
||||||
|
int isFollowup;
|
||||||
|
bool isLiveCareAppointment;
|
||||||
|
bool isMedicalReportRequested;
|
||||||
|
bool isOnlineCheckedIN;
|
||||||
|
String latitude;
|
||||||
|
List<ListHISGetContactLensPerscription> listHISGetContactLensPerscription;
|
||||||
|
List<ListHISGetGlassPerscription> listHISGetGlassPerscription;
|
||||||
|
String longitude;
|
||||||
|
int nextAction;
|
||||||
|
int noOfPatientsRate;
|
||||||
|
int originalClinicID;
|
||||||
|
int originalProjectID;
|
||||||
|
String projectName;
|
||||||
|
String qR;
|
||||||
|
int remaniningHoursTocanPay;
|
||||||
|
bool sMSButtonVisable;
|
||||||
|
|
||||||
|
AppoimentAllHistoryResultList(
|
||||||
|
{this.setupID,
|
||||||
|
this.projectID,
|
||||||
|
this.appointmentNo,
|
||||||
|
this.appointmentDate,
|
||||||
|
this.appointmentDateN,
|
||||||
|
this.appointmentType,
|
||||||
|
this.bookDate,
|
||||||
|
this.patientID,
|
||||||
|
this.doctorID,
|
||||||
|
this.endDate,
|
||||||
|
this.startTime,
|
||||||
|
this.endTime,
|
||||||
|
this.status,
|
||||||
|
this.visitFor,
|
||||||
|
this.patientStatusType,
|
||||||
|
this.companyID,
|
||||||
|
this.bookedBy,
|
||||||
|
this.bookedOn,
|
||||||
|
this.confirmedBy,
|
||||||
|
this.confirmedOn,
|
||||||
|
this.arrivalChangedBy,
|
||||||
|
this.arrivedOn,
|
||||||
|
this.editedBy,
|
||||||
|
this.editedOn,
|
||||||
|
this.doctorName,
|
||||||
|
this.doctorNameN,
|
||||||
|
this.statusDesc,
|
||||||
|
this.statusDescN,
|
||||||
|
this.vitalStatus,
|
||||||
|
this.vitalSignAppointmentNo,
|
||||||
|
this.episodeID,
|
||||||
|
this.actualDoctorRate,
|
||||||
|
this.clinicName,
|
||||||
|
this.complainExists,
|
||||||
|
this.doctorImageURL,
|
||||||
|
this.doctorNameObj,
|
||||||
|
this.doctorRate,
|
||||||
|
this.doctorSpeciality,
|
||||||
|
this.doctorTitle,
|
||||||
|
this.gender,
|
||||||
|
this.genderDescription,
|
||||||
|
this.iSAllowOnlineCheckedIN,
|
||||||
|
this.isActiveDoctor,
|
||||||
|
this.isActiveDoctorProfile,
|
||||||
|
this.isDoctorAllowVedioCall,
|
||||||
|
this.isExecludeDoctor,
|
||||||
|
this.isFollowup,
|
||||||
|
this.isLiveCareAppointment,
|
||||||
|
this.isMedicalReportRequested,
|
||||||
|
this.isOnlineCheckedIN,
|
||||||
|
this.latitude,
|
||||||
|
this.listHISGetContactLensPerscription,
|
||||||
|
this.listHISGetGlassPerscription,
|
||||||
|
this.longitude,
|
||||||
|
this.nextAction,
|
||||||
|
this.noOfPatientsRate,
|
||||||
|
this.originalClinicID,
|
||||||
|
this.originalProjectID,
|
||||||
|
this.projectName,
|
||||||
|
this.qR,
|
||||||
|
this.remaniningHoursTocanPay,
|
||||||
|
this.sMSButtonVisable,
|
||||||
|
this.clinicID,
|
||||||
|
this.patientType,
|
||||||
|
|
||||||
|
this.visitType});
|
||||||
|
|
||||||
|
AppoimentAllHistoryResultList.fromJson(Map<String, dynamic> json) {
|
||||||
|
setupID = json['SetupID'];
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
appointmentNo = json['AppointmentNo'];
|
||||||
|
appointmentDate = json['AppointmentDate'];
|
||||||
|
appointmentDateN = json['AppointmentDateN'];
|
||||||
|
appointmentType = json['AppointmentType'];
|
||||||
|
bookDate = DateUtil.convertStringToDate(json['BookDate']);
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
clinicID = json['ClinicID'];
|
||||||
|
doctorID = json['DoctorID'];
|
||||||
|
endDate = json['EndDate'];
|
||||||
|
startTime = json['StartTime'];
|
||||||
|
endTime = json['EndTime'];
|
||||||
|
status = json['Status'];
|
||||||
|
visitType = json['VisitType'];
|
||||||
|
visitFor = json['VisitFor'];
|
||||||
|
patientStatusType = json['PatientStatusType'];
|
||||||
|
companyID = json['CompanyID'];
|
||||||
|
bookedBy = json['BookedBy'];
|
||||||
|
bookedOn = json['BookedOn'];
|
||||||
|
confirmedBy = json['ConfirmedBy'];
|
||||||
|
confirmedOn = json['ConfirmedOn'];
|
||||||
|
arrivalChangedBy = json['ArrivalChangedBy'];
|
||||||
|
arrivedOn = json['ArrivedOn'];
|
||||||
|
editedBy = json['EditedBy'];
|
||||||
|
editedOn = json['EditedOn'];
|
||||||
|
doctorName = json['DoctorName'];
|
||||||
|
doctorNameN = json['DoctorNameN'];
|
||||||
|
statusDesc = json['StatusDesc'];
|
||||||
|
statusDescN = json['StatusDescN'];
|
||||||
|
vitalStatus = json['VitalStatus'];
|
||||||
|
vitalSignAppointmentNo = json['VitalSignAppointmentNo'];
|
||||||
|
episodeID = json['EpisodeID'];
|
||||||
|
actualDoctorRate = json['ActualDoctorRate'];
|
||||||
|
clinicName = json['ClinicName'];
|
||||||
|
complainExists = json['ComplainExists'];
|
||||||
|
doctorImageURL = json['DoctorImageURL'];
|
||||||
|
doctorNameObj = json['DoctorNameObj'];
|
||||||
|
doctorRate = json['DoctorRate'];
|
||||||
|
// doctorSpeciality = json['DoctorSpeciality'].cast<String>();
|
||||||
|
doctorTitle = json['DoctorTitle'];
|
||||||
|
gender = json['Gender'];
|
||||||
|
genderDescription = json['GenderDescription'];
|
||||||
|
iSAllowOnlineCheckedIN = json['ISAllowOnlineCheckedIN'];
|
||||||
|
isActiveDoctor = json['IsActiveDoctor'];
|
||||||
|
isActiveDoctorProfile = json['IsActiveDoctorProfile'];
|
||||||
|
isDoctorAllowVedioCall = json['IsDoctorAllowVedioCall'];
|
||||||
|
isExecludeDoctor = json['IsExecludeDoctor'];
|
||||||
|
isFollowup = json['IsFollowup'];
|
||||||
|
isLiveCareAppointment = json['IsLiveCareAppointment'];
|
||||||
|
isMedicalReportRequested = json['IsMedicalReportRequested'];
|
||||||
|
isOnlineCheckedIN = json['IsOnlineCheckedIN'];
|
||||||
|
latitude = json['Latitude'];
|
||||||
|
if (json['List_HIS_GetContactLensPerscription'] != null) {
|
||||||
|
listHISGetContactLensPerscription =
|
||||||
|
new List<ListHISGetContactLensPerscription>();
|
||||||
|
json['List_HIS_GetContactLensPerscription'].forEach((v) {
|
||||||
|
listHISGetContactLensPerscription
|
||||||
|
.add(new ListHISGetContactLensPerscription.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (json['List_HIS_GetGlassPerscription'] != null) {
|
||||||
|
listHISGetGlassPerscription = new List<ListHISGetGlassPerscription>();
|
||||||
|
json['List_HIS_GetGlassPerscription'].forEach((v) {
|
||||||
|
listHISGetGlassPerscription
|
||||||
|
.add(new ListHISGetGlassPerscription.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
longitude = json['Longitude'];
|
||||||
|
nextAction = json['NextAction'];
|
||||||
|
noOfPatientsRate = json['NoOfPatientsRate'];
|
||||||
|
originalClinicID = json['OriginalClinicID'];
|
||||||
|
originalProjectID = json['OriginalProjectID'];
|
||||||
|
projectName = json['ProjectName'];
|
||||||
|
qR = json['QR'];
|
||||||
|
remaniningHoursTocanPay = json['RemaniningHoursTocanPay'];
|
||||||
|
sMSButtonVisable = json['SMSButtonVisable'];
|
||||||
|
clinicID = json['clinicID'];
|
||||||
|
patientType = json['patientType'];
|
||||||
|
status = json['status'];
|
||||||
|
visitType = json['visitType'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['SetupID'] = this.setupID;
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['AppointmentNo'] = this.appointmentNo;
|
||||||
|
data['AppointmentDate'] = this.appointmentDate;
|
||||||
|
data['AppointmentDateN'] = this.appointmentDateN;
|
||||||
|
data['AppointmentType'] = this.appointmentType;
|
||||||
|
data['BookDate'] = this.bookDate;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['ClinicID'] = this.clinicID;
|
||||||
|
data['DoctorID'] = this.doctorID;
|
||||||
|
data['EndDate'] = this.endDate;
|
||||||
|
data['StartTime'] = this.startTime;
|
||||||
|
data['EndTime'] = this.endTime;
|
||||||
|
data['Status'] = this.status;
|
||||||
|
data['VisitType'] = this.visitType;
|
||||||
|
data['VisitFor'] = this.visitFor;
|
||||||
|
data['PatientStatusType'] = this.patientStatusType;
|
||||||
|
data['CompanyID'] = this.companyID;
|
||||||
|
data['BookedBy'] = this.bookedBy;
|
||||||
|
data['BookedOn'] = this.bookedOn;
|
||||||
|
data['ConfirmedBy'] = this.confirmedBy;
|
||||||
|
data['ConfirmedOn'] = this.confirmedOn;
|
||||||
|
data['ArrivalChangedBy'] = this.arrivalChangedBy;
|
||||||
|
data['ArrivedOn'] = this.arrivedOn;
|
||||||
|
data['EditedBy'] = this.editedBy;
|
||||||
|
data['EditedOn'] = this.editedOn;
|
||||||
|
data['DoctorName'] = this.doctorName;
|
||||||
|
data['DoctorNameN'] = this.doctorNameN;
|
||||||
|
data['StatusDesc'] = this.statusDesc;
|
||||||
|
data['StatusDescN'] = this.statusDescN;
|
||||||
|
data['VitalStatus'] = this.vitalStatus;
|
||||||
|
data['VitalSignAppointmentNo'] = this.vitalSignAppointmentNo;
|
||||||
|
data['EpisodeID'] = this.episodeID;
|
||||||
|
data['ActualDoctorRate'] = this.actualDoctorRate;
|
||||||
|
data['ClinicName'] = this.clinicName;
|
||||||
|
data['ComplainExists'] = this.complainExists;
|
||||||
|
data['DoctorImageURL'] = this.doctorImageURL;
|
||||||
|
data['DoctorNameObj'] = this.doctorNameObj;
|
||||||
|
data['DoctorRate'] = this.doctorRate;
|
||||||
|
data['DoctorSpeciality'] = this.doctorSpeciality;
|
||||||
|
data['DoctorTitle'] = this.doctorTitle;
|
||||||
|
data['Gender'] = this.gender;
|
||||||
|
data['GenderDescription'] = this.genderDescription;
|
||||||
|
data['ISAllowOnlineCheckedIN'] = this.iSAllowOnlineCheckedIN;
|
||||||
|
data['IsActiveDoctor'] = this.isActiveDoctor;
|
||||||
|
data['IsActiveDoctorProfile'] = this.isActiveDoctorProfile;
|
||||||
|
data['IsDoctorAllowVedioCall'] = this.isDoctorAllowVedioCall;
|
||||||
|
data['IsExecludeDoctor'] = this.isExecludeDoctor;
|
||||||
|
data['IsFollowup'] = this.isFollowup;
|
||||||
|
data['IsLiveCareAppointment'] = this.isLiveCareAppointment;
|
||||||
|
data['IsMedicalReportRequested'] = this.isMedicalReportRequested;
|
||||||
|
data['IsOnlineCheckedIN'] = this.isOnlineCheckedIN;
|
||||||
|
data['Latitude'] = this.latitude;
|
||||||
|
if (this.listHISGetContactLensPerscription != null) {
|
||||||
|
data['List_HIS_GetContactLensPerscription'] = this
|
||||||
|
.listHISGetContactLensPerscription
|
||||||
|
.map((v) => v.toJson())
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
if (this.listHISGetGlassPerscription != null) {
|
||||||
|
data['List_HIS_GetGlassPerscription'] =
|
||||||
|
this.listHISGetGlassPerscription.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
data['Longitude'] = this.longitude;
|
||||||
|
data['NextAction'] = this.nextAction;
|
||||||
|
data['NoOfPatientsRate'] = this.noOfPatientsRate;
|
||||||
|
data['OriginalClinicID'] = this.originalClinicID;
|
||||||
|
data['OriginalProjectID'] = this.originalProjectID;
|
||||||
|
data['ProjectName'] = this.projectName;
|
||||||
|
data['QR'] = this.qR;
|
||||||
|
data['RemaniningHoursTocanPay'] = this.remaniningHoursTocanPay;
|
||||||
|
data['SMSButtonVisable'] = this.sMSButtonVisable;
|
||||||
|
data['clinicID'] = this.clinicID;
|
||||||
|
data['patientType'] = this.patientType;
|
||||||
|
data['status'] = this.status;
|
||||||
|
data['visitType'] = this.visitType;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ListHISGetContactLensPerscription {
|
||||||
|
String setupId;
|
||||||
|
int projectId;
|
||||||
|
int patientType;
|
||||||
|
int patientId;
|
||||||
|
int encounterType;
|
||||||
|
int encounterNo;
|
||||||
|
int oDOS;
|
||||||
|
dynamic brand;
|
||||||
|
dynamic baseCurve;
|
||||||
|
dynamic power;
|
||||||
|
dynamic diameter;
|
||||||
|
dynamic oZ;
|
||||||
|
dynamic cT;
|
||||||
|
dynamic blend;
|
||||||
|
String remarks;
|
||||||
|
int status;
|
||||||
|
bool isActive;
|
||||||
|
String createdOn;
|
||||||
|
|
||||||
|
ListHISGetContactLensPerscription(
|
||||||
|
{this.setupId,
|
||||||
|
this.projectId,
|
||||||
|
this.patientType,
|
||||||
|
this.patientId,
|
||||||
|
this.encounterType,
|
||||||
|
this.encounterNo,
|
||||||
|
this.oDOS,
|
||||||
|
this.brand,
|
||||||
|
this.baseCurve,
|
||||||
|
this.power,
|
||||||
|
this.diameter,
|
||||||
|
this.oZ,
|
||||||
|
this.cT,
|
||||||
|
this.blend,
|
||||||
|
this.remarks,
|
||||||
|
this.status,
|
||||||
|
this.isActive,
|
||||||
|
this.createdOn});
|
||||||
|
|
||||||
|
ListHISGetContactLensPerscription.fromJson(Map<String, dynamic> json) {
|
||||||
|
setupId = json['SetupId'];
|
||||||
|
projectId = json['ProjectId'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
patientId = json['PatientId'];
|
||||||
|
encounterType = json['EncounterType'];
|
||||||
|
encounterNo = json['EncounterNo'];
|
||||||
|
oDOS = json['OD_OS'];
|
||||||
|
brand = json['Brand'];
|
||||||
|
baseCurve = json['BaseCurve'];
|
||||||
|
power = json['Power'];
|
||||||
|
diameter = json['Diameter'];
|
||||||
|
oZ = json['OZ'];
|
||||||
|
cT = json['CT'];
|
||||||
|
blend = json['Blend'];
|
||||||
|
remarks = json['Remarks'];
|
||||||
|
status = json['Status'];
|
||||||
|
isActive = json['IsActive'];
|
||||||
|
createdOn = json['CreatedOn'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['SetupId'] = this.setupId;
|
||||||
|
data['ProjectId'] = this.projectId;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['PatientId'] = this.patientId;
|
||||||
|
data['EncounterType'] = this.encounterType;
|
||||||
|
data['EncounterNo'] = this.encounterNo;
|
||||||
|
data['OD_OS'] = this.oDOS;
|
||||||
|
data['Brand'] = this.brand;
|
||||||
|
data['BaseCurve'] = this.baseCurve;
|
||||||
|
data['Power'] = this.power;
|
||||||
|
data['Diameter'] = this.diameter;
|
||||||
|
data['OZ'] = this.oZ;
|
||||||
|
data['CT'] = this.cT;
|
||||||
|
data['Blend'] = this.blend;
|
||||||
|
data['Remarks'] = this.remarks;
|
||||||
|
data['Status'] = this.status;
|
||||||
|
data['IsActive'] = this.isActive;
|
||||||
|
data['CreatedOn'] = this.createdOn;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ListHISGetGlassPerscription {
|
||||||
|
dynamic projectID;
|
||||||
|
String setupID;
|
||||||
|
dynamic patientId;
|
||||||
|
dynamic encounterType;
|
||||||
|
dynamic encounterNo;
|
||||||
|
String visionType;
|
||||||
|
double rightEyeSpherical;
|
||||||
|
dynamic rightEyeCylinder;
|
||||||
|
dynamic rightEyeAxis;
|
||||||
|
dynamic rightEyePrism;
|
||||||
|
dynamic rightEyeVA;
|
||||||
|
String rightEyeRemarks;
|
||||||
|
dynamic leftEyeSpherical;
|
||||||
|
dynamic leftEyeCylinder;
|
||||||
|
dynamic leftEyeAxis;
|
||||||
|
dynamic leftEyePrism;
|
||||||
|
dynamic leftEyeVA;
|
||||||
|
String leftEyeRemarks;
|
||||||
|
dynamic pD;
|
||||||
|
dynamic bVD;
|
||||||
|
dynamic status;
|
||||||
|
bool isActive;
|
||||||
|
String createdOn;
|
||||||
|
|
||||||
|
ListHISGetGlassPerscription(
|
||||||
|
{this.projectID,
|
||||||
|
this.setupID,
|
||||||
|
this.patientId,
|
||||||
|
this.encounterType,
|
||||||
|
this.encounterNo,
|
||||||
|
this.visionType,
|
||||||
|
this.rightEyeSpherical,
|
||||||
|
this.rightEyeCylinder,
|
||||||
|
this.rightEyeAxis,
|
||||||
|
this.rightEyePrism,
|
||||||
|
this.rightEyeVA,
|
||||||
|
this.rightEyeRemarks,
|
||||||
|
this.leftEyeSpherical,
|
||||||
|
this.leftEyeCylinder,
|
||||||
|
this.leftEyeAxis,
|
||||||
|
this.leftEyePrism,
|
||||||
|
this.leftEyeVA,
|
||||||
|
this.leftEyeRemarks,
|
||||||
|
this.pD,
|
||||||
|
this.bVD,
|
||||||
|
this.status,
|
||||||
|
this.isActive,
|
||||||
|
this.createdOn});
|
||||||
|
|
||||||
|
ListHISGetGlassPerscription.fromJson(Map<String, dynamic> json) {
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
setupID = json['SetupID'];
|
||||||
|
patientId = json['PatientId'];
|
||||||
|
encounterType = json['EncounterType'];
|
||||||
|
encounterNo = json['EncounterNo'];
|
||||||
|
visionType = json['VisionType'];
|
||||||
|
rightEyeSpherical = json['RightEyeSpherical'];
|
||||||
|
rightEyeCylinder = json['RightEyeCylinder'];
|
||||||
|
rightEyeAxis = json['RightEyeAxis'];
|
||||||
|
rightEyePrism = json['RightEyePrism'];
|
||||||
|
rightEyeVA = json['RightEyeVA'];
|
||||||
|
rightEyeRemarks = json['RightEyeRemarks'];
|
||||||
|
leftEyeSpherical = json['LeftEyeSpherical'];
|
||||||
|
leftEyeCylinder = json['LeftEyeCylinder'];
|
||||||
|
leftEyeAxis = json['LeftEyeAxis'];
|
||||||
|
leftEyePrism = json['LeftEyePrism'];
|
||||||
|
leftEyeVA = json['LeftEyeVA'];
|
||||||
|
leftEyeRemarks = json['LeftEyeRemarks'];
|
||||||
|
pD = json['PD'];
|
||||||
|
bVD = json['BVD'];
|
||||||
|
status = json['Status'];
|
||||||
|
isActive = json['IsActive'];
|
||||||
|
createdOn = json['CreatedOn'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['SetupID'] = this.setupID;
|
||||||
|
data['PatientId'] = this.patientId;
|
||||||
|
data['EncounterType'] = this.encounterType;
|
||||||
|
data['EncounterNo'] = this.encounterNo;
|
||||||
|
data['VisionType'] = this.visionType;
|
||||||
|
data['RightEyeSpherical'] = this.rightEyeSpherical;
|
||||||
|
data['RightEyeCylinder'] = this.rightEyeCylinder;
|
||||||
|
data['RightEyeAxis'] = this.rightEyeAxis;
|
||||||
|
data['RightEyePrism'] = this.rightEyePrism;
|
||||||
|
data['RightEyeVA'] = this.rightEyeVA;
|
||||||
|
data['RightEyeRemarks'] = this.rightEyeRemarks;
|
||||||
|
data['LeftEyeSpherical'] = this.leftEyeSpherical;
|
||||||
|
data['LeftEyeCylinder'] = this.leftEyeCylinder;
|
||||||
|
data['LeftEyeAxis'] = this.leftEyeAxis;
|
||||||
|
data['LeftEyePrism'] = this.leftEyePrism;
|
||||||
|
data['LeftEyeVA'] = this.leftEyeVA;
|
||||||
|
data['LeftEyeRemarks'] = this.leftEyeRemarks;
|
||||||
|
data['PD'] = this.pD;
|
||||||
|
data['BVD'] = this.bVD;
|
||||||
|
data['Status'] = this.status;
|
||||||
|
data['IsActive'] = this.isActive;
|
||||||
|
data['CreatedOn'] = this.createdOn;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
import 'AppoimentAllHistoryResult.dart';
|
||||||
|
|
||||||
|
class AppointmentFilter {
|
||||||
|
List<AppoimentAllHistoryResultList> appointmentAllHistoryResultList = List();
|
||||||
|
String filterName;
|
||||||
|
|
||||||
|
AppointmentFilter(
|
||||||
|
AppoimentAllHistoryResultList allHistoryResultList, String filterName) {
|
||||||
|
appointmentAllHistoryResultList.add(allHistoryResultList);
|
||||||
|
this.filterName = filterName;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
import 'package:diplomaticquarterapp/config/config.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/eye/AppoimentAllHistoryResult.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
||||||
|
|
||||||
|
class EyeService extends BaseService {
|
||||||
|
List<AppoimentAllHistoryResultList> appoimentAllHistoryResultList = List();
|
||||||
|
|
||||||
|
getEyeMeasurement() async {
|
||||||
|
hasError = false;
|
||||||
|
super.error = "";
|
||||||
|
Map<String, dynamic> body = Map();
|
||||||
|
body['isDentalAllowedBackend'] = false;
|
||||||
|
body['IsIrisPrescription'] = true;
|
||||||
|
await baseAppClient.post(GET_PATIENT_APPOINTMENT_HISTORY,
|
||||||
|
onSuccess: (response, statusCode) async {
|
||||||
|
appoimentAllHistoryResultList.clear();
|
||||||
|
response['AppoimentAllHistoryResultList'].forEach((appoitment) {
|
||||||
|
appoimentAllHistoryResultList
|
||||||
|
.add(AppoimentAllHistoryResultList.fromJson(appoitment));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: body);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/eye/AppoimentAllHistoryResult.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/eye/AppointmentFilter.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/service/medical/EyeService.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/locator.dart';
|
||||||
|
|
||||||
|
class EyeViewModel extends BaseViewModel {
|
||||||
|
EyeService _eyeService = locator<EyeService>();
|
||||||
|
|
||||||
|
List<AppoimentAllHistoryResultList> get appoimentAllHistoryResultList =>
|
||||||
|
_eyeService.appoimentAllHistoryResultList;
|
||||||
|
|
||||||
|
List<AppointmentFilter> appointmentFilter = List();
|
||||||
|
|
||||||
|
getEyeMeasurement() async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _eyeService.getEyeMeasurement();
|
||||||
|
if (_eyeService.hasError) {
|
||||||
|
error = _eyeService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else {
|
||||||
|
_eyeService.appoimentAllHistoryResultList.forEach((element) {
|
||||||
|
List<AppointmentFilter> _appointmentFilter = appointmentFilter
|
||||||
|
.where(
|
||||||
|
(elementFilter) =>
|
||||||
|
elementFilter.filterName == element.projectName,
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if (_appointmentFilter.length != 0) {
|
||||||
|
appointmentFilter[appointmentFilter.indexOf(_appointmentFilter[0])]
|
||||||
|
.appointmentAllHistoryResultList
|
||||||
|
.add(element);
|
||||||
|
} else {
|
||||||
|
appointmentFilter.add(AppointmentFilter(
|
||||||
|
element,
|
||||||
|
element.projectName,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,126 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/model/eye/AppoimentAllHistoryResult.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/medical/EyeViewModel.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.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';
|
||||||
|
|
||||||
|
class ClassesPage extends StatelessWidget {
|
||||||
|
final ListHISGetGlassPerscription glassPerscription;
|
||||||
|
|
||||||
|
const ClassesPage({Key key, this.glassPerscription}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return BaseView<EyeViewModel>(
|
||||||
|
builder: (_, model, w) => AppScaffold(
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.only(top: 70, left: 15, right: 15, bottom: 15),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.rectangle,
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(8)),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).rightEye,
|
||||||
|
fontSize: 23,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
getRow(TranslationBase.of(context).sphere, '${glassPerscription.rightEyeSpherical}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).cylinder, '${glassPerscription.rightEyeCylinder}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).axis, '${glassPerscription.rightEyeAxis}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).prism, '${glassPerscription.rightEyePrism}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).va, '${glassPerscription.rightEyeVA}', '-'),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 17,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.rectangle,
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(8)),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).leftEye,
|
||||||
|
fontSize: 23,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
getRow(TranslationBase.of(context).sphere, '${glassPerscription.leftEyeSpherical}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).cylinder, '${glassPerscription.leftEyeCylinder}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).axis, '${glassPerscription.leftEyeAxis}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).prism, '${glassPerscription.leftEyePrism}', '-'),
|
||||||
|
getRow(TranslationBase.of(context).va, '${glassPerscription.leftEyeVA}', '-'),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 17,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: TranslationBase.of(context).sendEmail,
|
||||||
|
textColor: Colors.white,
|
||||||
|
color: Colors.red[700],
|
||||||
|
icon: Icon(
|
||||||
|
Icons.email,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget getRow(String title, String val1, String val2) => Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Expanded(flex: 4, child: Texts(title)),
|
||||||
|
Expanded(
|
||||||
|
flex: 2,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
children: [
|
||||||
|
Texts(val1 == 'null' ? '-' : val1),
|
||||||
|
Texts(val2 != 'null' ? '-' :val2),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Divider()
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -0,0 +1,129 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/model/eye/AppoimentAllHistoryResult.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.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';
|
||||||
|
|
||||||
|
class ContactLensPage extends StatelessWidget {
|
||||||
|
final ListHISGetContactLensPerscription listHISGetContactLensPerscription;
|
||||||
|
|
||||||
|
const ContactLensPage({Key key, this.listHISGetContactLensPerscription})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.only(top: 70, left: 15, right: 15, bottom: 15),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.rectangle,
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(8)),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).rightEye,
|
||||||
|
fontSize: 23,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
getRow(TranslationBase.of(context).brand, '${listHISGetContactLensPerscription.brand}'),
|
||||||
|
getRow('B.C', '${listHISGetContactLensPerscription.baseCurve}'),
|
||||||
|
getRow(TranslationBase.of(context).power, '${listHISGetContactLensPerscription.power}'),
|
||||||
|
getRow(TranslationBase.of(context).diameter, '${listHISGetContactLensPerscription.diameter}'),
|
||||||
|
getRow('OZ', '${listHISGetContactLensPerscription.oZ}'),
|
||||||
|
getRow('CT', '${listHISGetContactLensPerscription.cT}'),
|
||||||
|
getRow('Blend', '${listHISGetContactLensPerscription.blend}'),
|
||||||
|
getRow(TranslationBase.of(context).reminder, '${listHISGetContactLensPerscription.remarks}'),
|
||||||
|
|
||||||
|
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 17,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.rectangle,
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(8)),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).leftEye,
|
||||||
|
fontSize: 23,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
getRow(TranslationBase.of(context).brand, '${listHISGetContactLensPerscription.brand}'),
|
||||||
|
getRow('B.C', '${listHISGetContactLensPerscription.baseCurve}'),
|
||||||
|
getRow(TranslationBase.of(context).power, '${listHISGetContactLensPerscription.power}'),
|
||||||
|
getRow(TranslationBase.of(context).diameter, '${listHISGetContactLensPerscription.diameter}'),
|
||||||
|
getRow('OZ', '${listHISGetContactLensPerscription.oZ}'),
|
||||||
|
getRow('CT', '${listHISGetContactLensPerscription.cT}'),
|
||||||
|
getRow('Blend', '${listHISGetContactLensPerscription.blend}'),
|
||||||
|
getRow(TranslationBase.of(context).reminder, '${listHISGetContactLensPerscription.remarks}'),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 17,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: TranslationBase.of(context).sendEmail,
|
||||||
|
textColor: Colors.white,
|
||||||
|
color: Colors.red[700],
|
||||||
|
icon: Icon(
|
||||||
|
Icons.email,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget getRow(String title, String val1) => Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
children: [
|
||||||
|
Expanded(flex: 4, child: Texts(title)),
|
||||||
|
Expanded(
|
||||||
|
flex: 2,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(val1 == 'null' ? '-' : val1),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Divider()
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -0,0 +1,128 @@
|
|||||||
|
import 'dart:ui';
|
||||||
|
|
||||||
|
import 'package:diplomaticquarterapp/core/model/eye/AppoimentAllHistoryResult.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/medical/EyeViewModel.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.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 'ClassesPage.dart';
|
||||||
|
import 'ContactLensPage.dart';
|
||||||
|
|
||||||
|
class EyeHomePage extends StatefulWidget {
|
||||||
|
final AppoimentAllHistoryResultList appointmentAllHistoryResultList;
|
||||||
|
|
||||||
|
const EyeHomePage({Key key, this.appointmentAllHistoryResultList})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_EyeHomePageState createState() => _EyeHomePageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _EyeHomePageState extends State<EyeHomePage>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
|
TabController _tabController;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_tabController = TabController(length: 2, vsync: this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
_tabController.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
appBarTitle: TranslationBase.of(context).measurements,
|
||||||
|
body: Scaffold(
|
||||||
|
extendBodyBehindAppBar: true,
|
||||||
|
appBar: PreferredSize(
|
||||||
|
preferredSize: Size.fromHeight(60.0),
|
||||||
|
child: Stack(
|
||||||
|
children: <Widget>[
|
||||||
|
Positioned(
|
||||||
|
bottom: 1,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
child: BackdropFilter(
|
||||||
|
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
|
||||||
|
child: Container(
|
||||||
|
color: Theme.of(context)
|
||||||
|
.scaffoldBackgroundColor
|
||||||
|
.withOpacity(0.8),
|
||||||
|
height: 70.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
height: 55.0,
|
||||||
|
margin: EdgeInsets.only(left: 20,right: 20,top: 15),
|
||||||
|
color: Colors.white,
|
||||||
|
child: Center(
|
||||||
|
child: TabBar(
|
||||||
|
isScrollable: true,
|
||||||
|
controller: _tabController,
|
||||||
|
indicatorWeight: 5.0,
|
||||||
|
indicatorSize: TabBarIndicatorSize.label,
|
||||||
|
indicatorColor: Colors.red[800],
|
||||||
|
labelColor: Theme.of(context).primaryColor,
|
||||||
|
labelPadding:
|
||||||
|
EdgeInsets.only(top: 4.0, left: 5.0, right: 5.0),
|
||||||
|
unselectedLabelColor: Colors.grey[800],
|
||||||
|
tabs: [
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.27,
|
||||||
|
child: Center(
|
||||||
|
child: Texts(TranslationBase.of(context).classes),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.27,
|
||||||
|
child: Center(
|
||||||
|
child: Texts(TranslationBase.of(context).contactLens),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
child: TabBarView(
|
||||||
|
physics: BouncingScrollPhysics(),
|
||||||
|
controller: _tabController,
|
||||||
|
children: <Widget>[
|
||||||
|
ClassesPage(
|
||||||
|
glassPerscription: widget.appointmentAllHistoryResultList
|
||||||
|
.listHISGetGlassPerscription[0],
|
||||||
|
),
|
||||||
|
ContactLensPage(
|
||||||
|
listHISGetContactLensPerscription: widget
|
||||||
|
.appointmentAllHistoryResultList
|
||||||
|
.listHISGetContactLensPerscription[0],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,123 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/viewModels/medical/EyeViewModel.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.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';
|
||||||
|
|
||||||
|
import 'EyeHomePage.dart';
|
||||||
|
|
||||||
|
class EyeMeasurementsPage extends StatelessWidget {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
ProjectViewModel projectViewModel = Provider.of(context);
|
||||||
|
return BaseView<EyeViewModel>(
|
||||||
|
onModelReady: (model) => model.getEyeMeasurement(),
|
||||||
|
builder: (_, model, w) => AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
baseViewModel: model,
|
||||||
|
appBarTitle: TranslationBase.of(context).eyeMeasurements,
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.all(8),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
...List.generate(
|
||||||
|
model.appointmentFilter.length,
|
||||||
|
(index) => AppExpandableNotifier(
|
||||||
|
title: model.appointmentFilter[index].filterName,
|
||||||
|
bodyWidget: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: model.appointmentFilter[index]
|
||||||
|
.appointmentAllHistoryResultList
|
||||||
|
.map((appointment) {
|
||||||
|
return InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
FadePage(
|
||||||
|
page: EyeHomePage(
|
||||||
|
appointmentAllHistoryResultList: appointment,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.all(8),
|
||||||
|
padding: EdgeInsets.all(8.0),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
color: Colors.white,
|
||||||
|
border: Border.all(color: Colors.grey),
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
flex: 1,
|
||||||
|
child: LargeAvatar(
|
||||||
|
name: appointment.doctorNameObj,
|
||||||
|
url: appointment.doctorImageURL,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
flex: 4,
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.all(10),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Texts(
|
||||||
|
appointment.doctorNameObj,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
appointment.clinicName,
|
||||||
|
variant: 'caption3',
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
DateUtil.getMonthDayYearDateFormatted(
|
||||||
|
appointment.bookDate),
|
||||||
|
variant: 'caption3',
|
||||||
|
),
|
||||||
|
StarRating(
|
||||||
|
totalAverage: appointment
|
||||||
|
.actualDoctorRate
|
||||||
|
.toDouble(),
|
||||||
|
forceStars: true),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Icon(
|
||||||
|
projectViewModel.isArabic
|
||||||
|
? Icons.arrow_forward_ios
|
||||||
|
: Icons.arrow_back_ios,
|
||||||
|
color: Colors.grey,
|
||||||
|
size: 18,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue