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