Merge branch 'master' of https://gitlab.com/Cloud_Solution/doctor_app_flutter into develop
commit
ae524100f7
@ -1 +1,2 @@
|
|||||||
final TOKEN = 'token';
|
final TOKEN = 'token';
|
||||||
|
final PROJECT_ID="projectID";
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
class RequestDoctorReply {
|
||||||
|
int projectID;
|
||||||
|
int doctorID;
|
||||||
|
int transactionNo;
|
||||||
|
int languageID;
|
||||||
|
String stamp;
|
||||||
|
String iPAdress;
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
String tokenID;
|
||||||
|
String sessionID;
|
||||||
|
bool isLoginForDoctorApp;
|
||||||
|
bool patientOutSA;
|
||||||
|
|
||||||
|
RequestDoctorReply(
|
||||||
|
{this.projectID = 15,
|
||||||
|
this.doctorID = 70907,
|
||||||
|
this.transactionNo = 0,
|
||||||
|
this.languageID = 2,
|
||||||
|
this.stamp = '2020-04-27T12:17:17.721Z',
|
||||||
|
this.iPAdress = '11.11.11.11',
|
||||||
|
this.versionID = 1.2,
|
||||||
|
this.channel = 9,
|
||||||
|
this.tokenID = '@dm!n',
|
||||||
|
this.sessionID = '2Z7FX4Lokp',
|
||||||
|
this.isLoginForDoctorApp = true,
|
||||||
|
this.patientOutSA = false});
|
||||||
|
|
||||||
|
RequestDoctorReply.fromJson(Map<String, dynamic> json) {
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
doctorID = json['DoctorID'];
|
||||||
|
transactionNo = json['TransactionNo'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
stamp = json['stamp'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['DoctorID'] = this.doctorID;
|
||||||
|
data['TransactionNo'] = this.transactionNo;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['stamp'] = this.stamp;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
class RequestSchedule {
|
||||||
|
int projectID;
|
||||||
|
int clinicID;
|
||||||
|
int doctorID;
|
||||||
|
int doctorWorkingHoursDays;
|
||||||
|
int languageID;
|
||||||
|
String stamp;
|
||||||
|
String iPAdress;
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
String tokenID;
|
||||||
|
String sessionID;
|
||||||
|
bool isLoginForDoctorApp;
|
||||||
|
bool patientOutSA;
|
||||||
|
int patientTypeID;
|
||||||
|
|
||||||
|
RequestSchedule(
|
||||||
|
this.projectID,
|
||||||
|
this.clinicID,
|
||||||
|
this.doctorID,
|
||||||
|
this.doctorWorkingHoursDays,
|
||||||
|
this.languageID,
|
||||||
|
this.stamp,
|
||||||
|
this.iPAdress,
|
||||||
|
this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.tokenID,
|
||||||
|
this.sessionID,
|
||||||
|
this.isLoginForDoctorApp,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.patientTypeID);
|
||||||
|
|
||||||
|
RequestSchedule.fromJson(Map<String, dynamic> json) {
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
clinicID = json['ClinicID'];
|
||||||
|
doctorID = json['DoctorID'];
|
||||||
|
doctorWorkingHoursDays = json['DoctorWorkingHoursDays'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
stamp = json['stamp'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['ClinicID'] = this.clinicID;
|
||||||
|
data['DoctorID'] = this.doctorID;
|
||||||
|
data['DoctorWorkingHoursDays'] = this.doctorWorkingHoursDays;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['stamp'] = this.stamp;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
class ListDoctorWorkingHoursTable {
|
||||||
|
String date;
|
||||||
|
String dayName;
|
||||||
|
String workingHours;
|
||||||
|
|
||||||
|
ListDoctorWorkingHoursTable({this.date, this.dayName, this.workingHours});
|
||||||
|
|
||||||
|
ListDoctorWorkingHoursTable.fromJson(Map<String, dynamic> json) {
|
||||||
|
date = json['Date'] ;
|
||||||
|
dayName = json['DayName'];
|
||||||
|
workingHours = json['WorkingHours'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['Date'] = this.date;
|
||||||
|
data['DayName'] = this.dayName;
|
||||||
|
data['WorkingHours'] = this.workingHours;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,108 @@
|
|||||||
|
class ListGtMyPatientsQuestions {
|
||||||
|
String setupID;
|
||||||
|
int projectID;
|
||||||
|
int transactionNo;
|
||||||
|
int patientType;
|
||||||
|
int patientID;
|
||||||
|
int doctorID;
|
||||||
|
int requestType;
|
||||||
|
String requestDate;
|
||||||
|
String requestTime;
|
||||||
|
String remarks;
|
||||||
|
int status;
|
||||||
|
int createdBy;
|
||||||
|
String createdOn;
|
||||||
|
int editedBy;
|
||||||
|
String editedOn;
|
||||||
|
String patientName;
|
||||||
|
String patientNameN;
|
||||||
|
int gender;
|
||||||
|
String dateofBirth;
|
||||||
|
String mobileNumber;
|
||||||
|
String emailAddress;
|
||||||
|
String age;
|
||||||
|
String genderDescription;
|
||||||
|
bool isVidaCall;
|
||||||
|
|
||||||
|
ListGtMyPatientsQuestions(
|
||||||
|
{this.setupID,
|
||||||
|
this.projectID,
|
||||||
|
this.transactionNo,
|
||||||
|
this.patientType,
|
||||||
|
this.patientID,
|
||||||
|
this.doctorID,
|
||||||
|
this.requestType,
|
||||||
|
this.requestDate,
|
||||||
|
this.requestTime,
|
||||||
|
this.remarks,
|
||||||
|
this.status,
|
||||||
|
this.createdBy,
|
||||||
|
this.createdOn,
|
||||||
|
this.editedBy,
|
||||||
|
this.editedOn,
|
||||||
|
this.patientName,
|
||||||
|
this.patientNameN,
|
||||||
|
this.gender,
|
||||||
|
this.dateofBirth,
|
||||||
|
this.mobileNumber,
|
||||||
|
this.emailAddress,
|
||||||
|
this.age,
|
||||||
|
this.genderDescription,
|
||||||
|
this.isVidaCall});
|
||||||
|
|
||||||
|
ListGtMyPatientsQuestions.fromJson(Map<String, dynamic> json) {
|
||||||
|
setupID = json['SetupID'];
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
transactionNo = json['TransactionNo'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
doctorID = json['DoctorID'];
|
||||||
|
requestType = json['RequestType'];
|
||||||
|
requestDate = json['RequestDate'];
|
||||||
|
requestTime = json['RequestTime'];
|
||||||
|
remarks = json['Remarks'];
|
||||||
|
status = json['Status'];
|
||||||
|
createdBy = json['CreatedBy'];
|
||||||
|
createdOn = json['CreatedOn'];
|
||||||
|
editedBy = json['EditedBy'];
|
||||||
|
editedOn = json['EditedOn'];
|
||||||
|
patientName = json['PatientName'];
|
||||||
|
patientNameN = json['PatientNameN'];
|
||||||
|
gender = json['Gender'];
|
||||||
|
dateofBirth = json['DateofBirth'];
|
||||||
|
mobileNumber = json['MobileNumber'];
|
||||||
|
emailAddress = json['EmailAddress'];
|
||||||
|
age = json['Age'];
|
||||||
|
genderDescription = json['GenderDescription'];
|
||||||
|
isVidaCall = json['IsVidaCall'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['SetupID'] = this.setupID;
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['TransactionNo'] = this.transactionNo;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['DoctorID'] = this.doctorID;
|
||||||
|
data['RequestType'] = this.requestType;
|
||||||
|
data['RequestDate'] = this.requestDate;
|
||||||
|
data['RequestTime'] = this.requestTime;
|
||||||
|
data['Remarks'] = this.remarks;
|
||||||
|
data['Status'] = this.status;
|
||||||
|
data['CreatedBy'] = this.createdBy;
|
||||||
|
data['CreatedOn'] = this.createdOn;
|
||||||
|
data['EditedBy'] = this.editedBy;
|
||||||
|
data['EditedOn'] = this.editedOn;
|
||||||
|
data['PatientName'] = this.patientName;
|
||||||
|
data['PatientNameN'] = this.patientNameN;
|
||||||
|
data['Gender'] = this.gender;
|
||||||
|
data['DateofBirth'] = this.dateofBirth;
|
||||||
|
data['MobileNumber'] = this.mobileNumber;
|
||||||
|
data['EmailAddress'] = this.emailAddress;
|
||||||
|
data['Age'] = this.age;
|
||||||
|
data['GenderDescription'] = this.genderDescription;
|
||||||
|
data['IsVidaCall'] = this.isVidaCall;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,131 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
//PatiantInformtion patiantInformtionFromJson(String str) => PatiantInformtion.fromJson(json.decode(str));
|
||||||
|
|
||||||
|
////String patiantInformtionToJson(PatiantInformtion data) => json.encode(data.toJson());
|
||||||
|
//****************************** */
|
||||||
|
|
||||||
|
/*
|
||||||
|
*@author: Amjad Amireh
|
||||||
|
*@Date:27/4/2020
|
||||||
|
*@param:
|
||||||
|
*@return:Patian information Model
|
||||||
|
|
||||||
|
*@desc:
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class PatiantInformtion {
|
||||||
|
final List<PatiantInformtion> list;
|
||||||
|
int projectId;
|
||||||
|
int clinicId;
|
||||||
|
int doctorId;
|
||||||
|
int patientId;
|
||||||
|
String doctorName;
|
||||||
|
String doctorNameN;
|
||||||
|
String firstName;
|
||||||
|
String middleName;
|
||||||
|
String lastName;
|
||||||
|
String firstNameN;
|
||||||
|
String middleNameN;
|
||||||
|
String lastNameN;
|
||||||
|
int gender;
|
||||||
|
String dateofBirth;
|
||||||
|
String nationalityId;
|
||||||
|
String mobileNumber;
|
||||||
|
String emailAddress;
|
||||||
|
String patientIdentificationNo;
|
||||||
|
int patientType;
|
||||||
|
String admissionNo;
|
||||||
|
String admissionDate;
|
||||||
|
String roomId;
|
||||||
|
String bedId;
|
||||||
|
String nursingStationId;
|
||||||
|
String description;
|
||||||
|
String clinicDescription;
|
||||||
|
String clinicDescriptionN;
|
||||||
|
String nationalityName;
|
||||||
|
String nationalityNameN;
|
||||||
|
String age;
|
||||||
|
String genderDescription;
|
||||||
|
String nursingStationName;
|
||||||
|
|
||||||
|
PatiantInformtion({
|
||||||
|
this.list,
|
||||||
|
this.projectId,
|
||||||
|
this.clinicId,
|
||||||
|
this.doctorId,
|
||||||
|
this.patientId,
|
||||||
|
this.doctorName,
|
||||||
|
this.doctorNameN,
|
||||||
|
this.firstName,
|
||||||
|
this.middleName,
|
||||||
|
this.lastName,
|
||||||
|
this.firstNameN,
|
||||||
|
this.middleNameN,
|
||||||
|
this.lastNameN,
|
||||||
|
this.gender,
|
||||||
|
this.dateofBirth,
|
||||||
|
this.nationalityId,
|
||||||
|
this.mobileNumber,
|
||||||
|
this.emailAddress,
|
||||||
|
this.patientIdentificationNo,
|
||||||
|
this.patientType,
|
||||||
|
this.admissionNo,
|
||||||
|
this.admissionDate,
|
||||||
|
this.roomId,
|
||||||
|
this.bedId,
|
||||||
|
this.nursingStationId,
|
||||||
|
this.description,
|
||||||
|
this.clinicDescription,
|
||||||
|
this.clinicDescriptionN,
|
||||||
|
this.nationalityName,
|
||||||
|
this.nationalityNameN,
|
||||||
|
this.age,
|
||||||
|
this.genderDescription,
|
||||||
|
this.nursingStationName,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory PatiantInformtion.fromJson(Map<String, dynamic> json) => PatiantInformtion(
|
||||||
|
projectId: json["ProjectID"],
|
||||||
|
clinicId: json["ClinicID"],
|
||||||
|
doctorId: json["DoctorID"],
|
||||||
|
patientId: json["PatientID"],
|
||||||
|
doctorName: json["DoctorName"],
|
||||||
|
doctorNameN: json["DoctorNameN"],
|
||||||
|
firstName: json["FirstName"],
|
||||||
|
middleName: json["MiddleName"],
|
||||||
|
lastName: json["LastName"],
|
||||||
|
firstNameN: json["FirstNameN"],
|
||||||
|
middleNameN: json["MiddleNameN"],
|
||||||
|
lastNameN: json["LastNameN"],
|
||||||
|
gender: json["Gender"],
|
||||||
|
dateofBirth: json["DateofBirth"],
|
||||||
|
nationalityId: json["NationalityID"],
|
||||||
|
mobileNumber: json["MobileNumber"],
|
||||||
|
emailAddress: json["EmailAddress"],
|
||||||
|
patientIdentificationNo: json["PatientIdentificationNo"],
|
||||||
|
patientType: json["PatientType"],
|
||||||
|
admissionNo: json["AdmissionNo"],
|
||||||
|
admissionDate: json["AdmissionDate"],
|
||||||
|
roomId: json["RoomID"],
|
||||||
|
bedId: json["BedID"],
|
||||||
|
nursingStationId: json["NursingStationID"],
|
||||||
|
description: json["Description"],
|
||||||
|
clinicDescription: json["ClinicDescription"],
|
||||||
|
clinicDescriptionN: json["ClinicDescriptionN"],
|
||||||
|
nationalityName: json["NationalityName"],
|
||||||
|
nationalityNameN: json["NationalityNameN"],
|
||||||
|
age: json["Age"],
|
||||||
|
genderDescription: json["GenderDescription"],
|
||||||
|
nursingStationName: json["NursingStationName"],
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
*@author: Amjad Amireh
|
||||||
|
*@Date:27/4/2020
|
||||||
|
*@param:
|
||||||
|
*@return:pass a List<dynamic> to a List<MyModel> from a JSON
|
||||||
|
|
||||||
|
*@desc:
|
||||||
|
*/
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||||
|
//ModelResponse
|
||||||
|
class ModelResponse {
|
||||||
|
final List<PatiantInformtion> list;
|
||||||
|
String firstName;
|
||||||
|
ModelResponse({
|
||||||
|
this.list,
|
||||||
|
this.firstName,
|
||||||
|
});
|
||||||
|
|
||||||
|
factory ModelResponse.fromJson(List<dynamic> parsedJson) {
|
||||||
|
|
||||||
|
|
||||||
|
List<PatiantInformtion> list = new List<PatiantInformtion>();
|
||||||
|
|
||||||
|
list = parsedJson.map((i) => PatiantInformtion.fromJson(i)).toList();
|
||||||
|
|
||||||
|
return new ModelResponse(list: list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PatiantInformtionl {
|
||||||
|
}
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
*@author: Elham Rababah
|
||||||
|
*@Date:27/4/2020
|
||||||
|
*@param:
|
||||||
|
*@return:
|
||||||
|
*@desc: VitalSignReqModel
|
||||||
|
*/
|
||||||
|
class VitalSignReqModel {
|
||||||
|
int patientID;
|
||||||
|
int projectID;
|
||||||
|
int patientTypeID;
|
||||||
|
int inOutpatientType;
|
||||||
|
int transNo;
|
||||||
|
int languageID;
|
||||||
|
String stamp ;
|
||||||
|
String iPAdress;
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
String tokenID;
|
||||||
|
String sessionID;
|
||||||
|
bool isLoginForDoctorApp;
|
||||||
|
bool patientOutSA;
|
||||||
|
|
||||||
|
VitalSignReqModel(
|
||||||
|
{this.patientID,
|
||||||
|
this.projectID,
|
||||||
|
this.inOutpatientType,
|
||||||
|
this.transNo,
|
||||||
|
this.languageID,
|
||||||
|
this.tokenID,
|
||||||
|
this.stamp = '2020-04-26T09:32:18.317Z',
|
||||||
|
this.iPAdress='11.11.11.11',
|
||||||
|
this.versionID=1.2,
|
||||||
|
this.channel=9,
|
||||||
|
this.sessionID='E2bsEeYEJo',
|
||||||
|
this.isLoginForDoctorApp=true,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientOutSA=false});
|
||||||
|
|
||||||
|
VitalSignReqModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
inOutpatientType = json['InOutpatientType'];
|
||||||
|
transNo = json['TransNo'];
|
||||||
|
stamp = json['stamp'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['InOutPatientType'] = this.inOutpatientType;
|
||||||
|
data['TransNo'] = this.transNo;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['stamp'] = this.stamp;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,257 @@
|
|||||||
|
class VitalSignResModel {
|
||||||
|
var transNo;
|
||||||
|
var projectID;
|
||||||
|
var weightKg;
|
||||||
|
var heightCm;
|
||||||
|
var temperatureCelcius;
|
||||||
|
var pulseBeatPerMinute;
|
||||||
|
var respirationBeatPerMinute;
|
||||||
|
var bloodPressureLower;
|
||||||
|
var bloodPressureHigher;
|
||||||
|
var sAO2;
|
||||||
|
var fIO2;
|
||||||
|
var painScore;
|
||||||
|
var bodyMassIndex;
|
||||||
|
var headCircumCm;
|
||||||
|
var leanBodyWeightLbs;
|
||||||
|
var idealBodyWeightLbs;
|
||||||
|
var temperatureCelciusMethod;
|
||||||
|
var pulseRhythm;
|
||||||
|
var respirationPattern;
|
||||||
|
var bloodPressureCuffLocation;
|
||||||
|
var bloodPressureCuffSize;
|
||||||
|
var bloodPressurePatientPosition;
|
||||||
|
var painLocation;
|
||||||
|
var painDuration;
|
||||||
|
var painCharacter;
|
||||||
|
var painFrequency;
|
||||||
|
bool isPainManagementDone;
|
||||||
|
var status;
|
||||||
|
bool isVitalsRequired;
|
||||||
|
var patientID;
|
||||||
|
var createdOn;
|
||||||
|
var doctorID;
|
||||||
|
var clinicID;
|
||||||
|
var triageCategory;
|
||||||
|
var gCScore;
|
||||||
|
var lineItemNo;
|
||||||
|
var vitalSignDate;
|
||||||
|
var actualTimeTaken;
|
||||||
|
var sugarLevel;
|
||||||
|
var fBS;
|
||||||
|
var rBS;
|
||||||
|
var observationType;
|
||||||
|
var heartRate;
|
||||||
|
var muscleTone;
|
||||||
|
var reflexIrritability;
|
||||||
|
var bodyColor;
|
||||||
|
var isFirstAssessment;
|
||||||
|
var dateofBirth;
|
||||||
|
var timeOfBirth;
|
||||||
|
var bloodPressure;
|
||||||
|
var bloodPressureCuffLocationDesc;
|
||||||
|
var bloodPressureCuffSizeDesc;
|
||||||
|
var bloodPressurePatientPositionDesc;
|
||||||
|
var clinicName;
|
||||||
|
var doctorImageURL;
|
||||||
|
var doctorName;
|
||||||
|
var painScoreDesc;
|
||||||
|
var pulseRhythmDesc;
|
||||||
|
var respirationPatternDesc;
|
||||||
|
var temperatureCelciusMethodDesc;
|
||||||
|
var time;
|
||||||
|
|
||||||
|
VitalSignResModel(
|
||||||
|
{this.transNo,
|
||||||
|
this.projectID,
|
||||||
|
this.weightKg,
|
||||||
|
this.heightCm,
|
||||||
|
this.temperatureCelcius,
|
||||||
|
this.pulseBeatPerMinute,
|
||||||
|
this.respirationBeatPerMinute,
|
||||||
|
this.bloodPressureLower,
|
||||||
|
this.bloodPressureHigher,
|
||||||
|
this.sAO2,
|
||||||
|
this.fIO2,
|
||||||
|
this.painScore,
|
||||||
|
this.bodyMassIndex,
|
||||||
|
this.headCircumCm,
|
||||||
|
this.leanBodyWeightLbs,
|
||||||
|
this.idealBodyWeightLbs,
|
||||||
|
this.temperatureCelciusMethod,
|
||||||
|
this.pulseRhythm,
|
||||||
|
this.respirationPattern,
|
||||||
|
this.bloodPressureCuffLocation,
|
||||||
|
this.bloodPressureCuffSize,
|
||||||
|
this.bloodPressurePatientPosition,
|
||||||
|
this.painLocation,
|
||||||
|
this.painDuration,
|
||||||
|
this.painCharacter,
|
||||||
|
this.painFrequency,
|
||||||
|
this.isPainManagementDone,
|
||||||
|
this.status,
|
||||||
|
this.isVitalsRequired,
|
||||||
|
this.patientID,
|
||||||
|
this.createdOn,
|
||||||
|
this.doctorID,
|
||||||
|
this.clinicID,
|
||||||
|
this.triageCategory,
|
||||||
|
this.gCScore,
|
||||||
|
this.lineItemNo,
|
||||||
|
this.vitalSignDate,
|
||||||
|
this.actualTimeTaken,
|
||||||
|
this.sugarLevel,
|
||||||
|
this.fBS,
|
||||||
|
this.rBS,
|
||||||
|
this.observationType,
|
||||||
|
this.heartRate,
|
||||||
|
this.muscleTone,
|
||||||
|
this.reflexIrritability,
|
||||||
|
this.bodyColor,
|
||||||
|
this.isFirstAssessment,
|
||||||
|
this.dateofBirth,
|
||||||
|
this.timeOfBirth,
|
||||||
|
this.bloodPressure,
|
||||||
|
this.bloodPressureCuffLocationDesc,
|
||||||
|
this.bloodPressureCuffSizeDesc,
|
||||||
|
this.bloodPressurePatientPositionDesc,
|
||||||
|
this.clinicName,
|
||||||
|
this.doctorImageURL,
|
||||||
|
this.doctorName,
|
||||||
|
this.painScoreDesc,
|
||||||
|
this.pulseRhythmDesc,
|
||||||
|
this.respirationPatternDesc,
|
||||||
|
this.temperatureCelciusMethodDesc,
|
||||||
|
this.time});
|
||||||
|
|
||||||
|
VitalSignResModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
transNo = json['TransNo'];
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
weightKg = json['WeightKg'];
|
||||||
|
heightCm = json['HeightCm'];
|
||||||
|
temperatureCelcius = json['TemperatureCelcius'];
|
||||||
|
pulseBeatPerMinute = json['PulseBeatPerMinute'];
|
||||||
|
respirationBeatPerMinute = json['RespirationBeatPerMinute'];
|
||||||
|
bloodPressureLower = json['BloodPressureLower'];
|
||||||
|
bloodPressureHigher = json['BloodPressureHigher'];
|
||||||
|
sAO2 = json['SAO2'];
|
||||||
|
fIO2 = json['FIO2'];
|
||||||
|
painScore = json['PainScore'];
|
||||||
|
bodyMassIndex = json['BodyMassIndex'];
|
||||||
|
headCircumCm = json['HeadCircumCm'];
|
||||||
|
leanBodyWeightLbs = json['LeanBodyWeightLbs'];
|
||||||
|
idealBodyWeightLbs = json['IdealBodyWeightLbs'];
|
||||||
|
temperatureCelciusMethod = json['TemperatureCelciusMethod'];
|
||||||
|
pulseRhythm = json['PulseRhythm'];
|
||||||
|
respirationPattern = json['RespirationPattern'];
|
||||||
|
bloodPressureCuffLocation = json['BloodPressureCuffLocation'];
|
||||||
|
bloodPressureCuffSize = json['BloodPressureCuffSize'];
|
||||||
|
bloodPressurePatientPosition = json['BloodPressurePatientPosition'];
|
||||||
|
painLocation = json['PainLocation'];
|
||||||
|
painDuration = json['PainDuration'];
|
||||||
|
painCharacter = json['PainCharacter'];
|
||||||
|
painFrequency = json['PainFrequency'];
|
||||||
|
isPainManagementDone = json['IsPainManagementDone'];
|
||||||
|
status = json['Status'];
|
||||||
|
isVitalsRequired = json['IsVitalsRequired'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
createdOn = json['CreatedOn'];
|
||||||
|
doctorID = json['DoctorID'];
|
||||||
|
clinicID = json['ClinicID'];
|
||||||
|
triageCategory = json['TriageCategory'];
|
||||||
|
gCScore = json['GCScore'];
|
||||||
|
lineItemNo = json['LineItemNo'];
|
||||||
|
vitalSignDate = json['VitalSignDate'];
|
||||||
|
actualTimeTaken = json['ActualTimeTaken'];
|
||||||
|
sugarLevel = json['SugarLevel'];
|
||||||
|
fBS = json['FBS'];
|
||||||
|
rBS = json['RBS'];
|
||||||
|
observationType = json['ObservationType'];
|
||||||
|
heartRate = json['HeartRate'];
|
||||||
|
muscleTone = json['MuscleTone'];
|
||||||
|
reflexIrritability = json['ReflexIrritability'];
|
||||||
|
bodyColor = json['BodyColor'];
|
||||||
|
isFirstAssessment = json['IsFirstAssessment'];
|
||||||
|
dateofBirth = json['DateofBirth'];
|
||||||
|
timeOfBirth = json['TimeOfBirth'];
|
||||||
|
bloodPressure = json['BloodPressure'];
|
||||||
|
bloodPressureCuffLocationDesc = json['BloodPressureCuffLocationDesc'];
|
||||||
|
bloodPressureCuffSizeDesc = json['BloodPressureCuffSizeDesc'];
|
||||||
|
bloodPressurePatientPositionDesc = json['BloodPressurePatientPositionDesc'];
|
||||||
|
clinicName = json['ClinicName'];
|
||||||
|
doctorImageURL = json['DoctorImageURL'];
|
||||||
|
doctorName = json['DoctorName'];
|
||||||
|
painScoreDesc = json['PainScoreDesc'];
|
||||||
|
pulseRhythmDesc = json['PulseRhythmDesc'];
|
||||||
|
respirationPatternDesc = json['RespirationPatternDesc'];
|
||||||
|
temperatureCelciusMethodDesc = json['TemperatureCelciusMethodDesc'];
|
||||||
|
time = json['Time'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['TransNo'] = this.transNo;
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['WeightKg'] = this.weightKg;
|
||||||
|
data['HeightCm'] = this.heightCm;
|
||||||
|
data['TemperatureCelcius'] = this.temperatureCelcius;
|
||||||
|
data['PulseBeatPerMinute'] = this.pulseBeatPerMinute;
|
||||||
|
data['RespirationBeatPerMinute'] = this.respirationBeatPerMinute;
|
||||||
|
data['BloodPressureLower'] = this.bloodPressureLower;
|
||||||
|
data['BloodPressureHigher'] = this.bloodPressureHigher;
|
||||||
|
data['SAO2'] = this.sAO2;
|
||||||
|
data['FIO2'] = this.fIO2;
|
||||||
|
data['PainScore'] = this.painScore;
|
||||||
|
data['BodyMassIndex'] = this.bodyMassIndex;
|
||||||
|
data['HeadCircumCm'] = this.headCircumCm;
|
||||||
|
data['LeanBodyWeightLbs'] = this.leanBodyWeightLbs;
|
||||||
|
data['IdealBodyWeightLbs'] = this.idealBodyWeightLbs;
|
||||||
|
data['TemperatureCelciusMethod'] = this.temperatureCelciusMethod;
|
||||||
|
data['PulseRhythm'] = this.pulseRhythm;
|
||||||
|
data['RespirationPattern'] = this.respirationPattern;
|
||||||
|
data['BloodPressureCuffLocation'] = this.bloodPressureCuffLocation;
|
||||||
|
data['BloodPressureCuffSize'] = this.bloodPressureCuffSize;
|
||||||
|
data['BloodPressurePatientPosition'] = this.bloodPressurePatientPosition;
|
||||||
|
data['PainLocation'] = this.painLocation;
|
||||||
|
data['PainDuration'] = this.painDuration;
|
||||||
|
data['PainCharacter'] = this.painCharacter;
|
||||||
|
data['PainFrequency'] = this.painFrequency;
|
||||||
|
data['IsPainManagementDone'] = this.isPainManagementDone;
|
||||||
|
data['Status'] = this.status;
|
||||||
|
data['IsVitalsRequired'] = this.isVitalsRequired;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['CreatedOn'] = this.createdOn;
|
||||||
|
data['DoctorID'] = this.doctorID;
|
||||||
|
data['ClinicID'] = this.clinicID;
|
||||||
|
data['TriageCategory'] = this.triageCategory;
|
||||||
|
data['GCScore'] = this.gCScore;
|
||||||
|
data['LineItemNo'] = this.lineItemNo;
|
||||||
|
data['VitalSignDate'] = this.vitalSignDate;
|
||||||
|
data['ActualTimeTaken'] = this.actualTimeTaken;
|
||||||
|
data['SugarLevel'] = this.sugarLevel;
|
||||||
|
data['FBS'] = this.fBS;
|
||||||
|
data['RBS'] = this.rBS;
|
||||||
|
data['ObservationType'] = this.observationType;
|
||||||
|
data['HeartRate'] = this.heartRate;
|
||||||
|
data['MuscleTone'] = this.muscleTone;
|
||||||
|
data['ReflexIrritability'] = this.reflexIrritability;
|
||||||
|
data['BodyColor'] = this.bodyColor;
|
||||||
|
data['IsFirstAssessment'] = this.isFirstAssessment;
|
||||||
|
data['DateofBirth'] = this.dateofBirth;
|
||||||
|
data['TimeOfBirth'] = this.timeOfBirth;
|
||||||
|
data['BloodPressure'] = this.bloodPressure;
|
||||||
|
data['BloodPressureCuffLocationDesc'] = this.bloodPressureCuffLocationDesc;
|
||||||
|
data['BloodPressureCuffSizeDesc'] = this.bloodPressureCuffSizeDesc;
|
||||||
|
data['BloodPressurePatientPositionDesc'] =
|
||||||
|
this.bloodPressurePatientPositionDesc;
|
||||||
|
data['ClinicName'] = this.clinicName;
|
||||||
|
data['DoctorImageURL'] = this.doctorImageURL;
|
||||||
|
data['DoctorName'] = this.doctorName;
|
||||||
|
data['PainScoreDesc'] = this.painScoreDesc;
|
||||||
|
data['PulseRhythmDesc'] = this.pulseRhythmDesc;
|
||||||
|
data['RespirationPatternDesc'] = this.respirationPatternDesc;
|
||||||
|
data['TemperatureCelciusMethodDesc'] = this.temperatureCelciusMethodDesc;
|
||||||
|
data['Time'] = this.time;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/RequestDoctorReply.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/list_gt_my_pationents_question_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/util/helpers.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:http/http.dart';
|
||||||
|
import 'package:http_interceptor/http_client_with_interceptor.dart';
|
||||||
|
|
||||||
|
import '../interceptor/http_interceptor.dart';
|
||||||
|
|
||||||
|
class DoctorReplyProvider with ChangeNotifier {
|
||||||
|
Client client =
|
||||||
|
HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]);
|
||||||
|
|
||||||
|
List<ListGtMyPatientsQuestions> listDoctorWorkingHoursTable = [];
|
||||||
|
bool isLoading = true;
|
||||||
|
bool isError = false;
|
||||||
|
String error = '';
|
||||||
|
RequestDoctorReply _requestSchedule = RequestDoctorReply();
|
||||||
|
|
||||||
|
DoctorReplyProvider() {
|
||||||
|
getDoctorSchedule();
|
||||||
|
}
|
||||||
|
|
||||||
|
getDoctorSchedule() async {
|
||||||
|
const url = BASE_URL + 'DoctorApplication.svc/REST/GtMyPatientsQuestions';
|
||||||
|
try {
|
||||||
|
if (await Helpers.checkConnection()) {
|
||||||
|
final response = await client.post(url,
|
||||||
|
body: json.encode(_requestSchedule.toJson()));
|
||||||
|
final int statusCode = response.statusCode;
|
||||||
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
||||||
|
isLoading = false;
|
||||||
|
isError = true;
|
||||||
|
error = 'Error While Fetching data';
|
||||||
|
} else {
|
||||||
|
var parsed = json.decode(response.body.toString());
|
||||||
|
if (parsed['MessageStatus'] == 1) {
|
||||||
|
parsed['List_GtMyPatientsQuestions'].forEach((v) {
|
||||||
|
listDoctorWorkingHoursTable.add( ListGtMyPatientsQuestions.fromJson(v));
|
||||||
|
});
|
||||||
|
isError = false;
|
||||||
|
isLoading = false;
|
||||||
|
} else {
|
||||||
|
isError = true;
|
||||||
|
error = parsed['ErrorMessage'] ?? parsed['ErrorEndUserMessage'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
isLoading = false;
|
||||||
|
isError = true;
|
||||||
|
error = 'Please Check The Internet Connection';
|
||||||
|
}
|
||||||
|
notifyListeners();
|
||||||
|
} catch (error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,71 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/util/helpers.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:http/http.dart';
|
||||||
|
import 'package:http_interceptor/http_client_with_interceptor.dart';
|
||||||
|
|
||||||
|
import '../interceptor/http_interceptor.dart';
|
||||||
|
import '../models/list_doctor_working_hours_table_model.dart';
|
||||||
|
import '../models/RequestSchedule.dart';
|
||||||
|
|
||||||
|
class ScheduleProvider with ChangeNotifier {
|
||||||
|
Client client =
|
||||||
|
HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]);
|
||||||
|
|
||||||
|
List<ListDoctorWorkingHoursTable> listDoctorWorkingHoursTable = [];
|
||||||
|
bool isLoading = true;
|
||||||
|
bool isError = false;
|
||||||
|
String error = '';
|
||||||
|
RequestSchedule requestSchedule = RequestSchedule(
|
||||||
|
15,
|
||||||
|
1,
|
||||||
|
70907,
|
||||||
|
7,
|
||||||
|
2,
|
||||||
|
'2020-04-22T11:25:57.640Z',
|
||||||
|
'11.11.11.11',
|
||||||
|
1.2,
|
||||||
|
9,
|
||||||
|
'2lMDFT8U+Uy5jxRzCO8n2w==',
|
||||||
|
'vV6tg9yyVJ222',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
1);
|
||||||
|
|
||||||
|
ScheduleProvider() {
|
||||||
|
getDoctorSchedule();
|
||||||
|
}
|
||||||
|
|
||||||
|
getDoctorSchedule() async {
|
||||||
|
const url = BASE_URL + 'Doctors.svc/REST/GetDoctorWorkingHoursTable';
|
||||||
|
try {
|
||||||
|
if (await Helpers.checkConnection()) {
|
||||||
|
final response = await client.post(url, body: json.encode(requestSchedule.toJson()));
|
||||||
|
final int statusCode = response.statusCode;
|
||||||
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
||||||
|
isLoading = false;
|
||||||
|
isError = true;
|
||||||
|
error = 'Error While Fetching data';
|
||||||
|
} else {
|
||||||
|
var parsed = json.decode(response.body.toString());
|
||||||
|
parsed['List_DoctorWorkingHoursTable'].forEach((v) {
|
||||||
|
listDoctorWorkingHoursTable
|
||||||
|
.add(new ListDoctorWorkingHoursTable.fromJson(v));
|
||||||
|
});
|
||||||
|
isError = false;
|
||||||
|
isLoading = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
isLoading = false;
|
||||||
|
isError = true;
|
||||||
|
error = 'Please Check The Internet Connection';
|
||||||
|
}
|
||||||
|
print('Heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer');
|
||||||
|
notifyListeners();
|
||||||
|
} catch (error) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,125 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/providers/doctor_reply_provider.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
/*
|
||||||
|
*@author: Mohammad Aljammal
|
||||||
|
*@Date:28/4/2020
|
||||||
|
*@param:
|
||||||
|
*@return:
|
||||||
|
*@desc: Doctor Reply Screen display data from GtMyPatientsQuestions service
|
||||||
|
*/
|
||||||
|
class DoctorReplyScreen extends StatelessWidget {
|
||||||
|
|
||||||
|
DoctorReplyProvider _doctorReplyProvider;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
_doctorReplyProvider = Provider.of(context);
|
||||||
|
return AppScaffold(
|
||||||
|
appBarTitle: 'Doctor Reply',
|
||||||
|
showAppDrawer: false,
|
||||||
|
body:_doctorReplyProvider.isLoading? DrAppCircularProgressIndeicator():
|
||||||
|
_doctorReplyProvider.isError? Center(
|
||||||
|
child: Text(
|
||||||
|
_doctorReplyProvider.error,
|
||||||
|
style: TextStyle(color: Theme.of(context).errorColor),
|
||||||
|
),
|
||||||
|
):
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0),
|
||||||
|
child: ListView(
|
||||||
|
children: [
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: _doctorReplyProvider.listDoctorWorkingHoursTable.map((reply) {
|
||||||
|
return CardWithBgWidget(
|
||||||
|
widget: Container(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
reply.patientName,
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
reply.remarks,
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Time',
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 10),
|
||||||
|
child: AppText(
|
||||||
|
reply.requestTime,
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'File No',
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 10),
|
||||||
|
child: AppText(
|
||||||
|
'${reply.patientID}',
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Mobile No',
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 10),
|
||||||
|
child: AppText(
|
||||||
|
reply.mobileNumber,
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class MessagesScreen extends StatelessWidget {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
current: 1,
|
||||||
|
appBarTitle: 'Messages',
|
||||||
|
body: Center(
|
||||||
|
child: Text('Messages heeer'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,121 @@
|
|||||||
|
import 'package:doctor_app_flutter/providers/schedule_provider.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import '../../config/size_config.dart';
|
||||||
|
import '../../widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import '../../widgets/shared/card_with_bg_widget.dart';
|
||||||
|
|
||||||
|
class MyScheduleScreen extends StatelessWidget {
|
||||||
|
ScheduleProvider scheduleProvider;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
scheduleProvider = Provider.of(context);
|
||||||
|
return AppScaffold(
|
||||||
|
// pageOnly: false,
|
||||||
|
showBottomBar: false,
|
||||||
|
showAppDrawer: false,
|
||||||
|
appBarTitle: 'My Schedule',
|
||||||
|
body: scheduleProvider.isLoading
|
||||||
|
? DrAppCircularProgressIndeicator()
|
||||||
|
: scheduleProvider.isError
|
||||||
|
? Center(
|
||||||
|
child: AppText(
|
||||||
|
scheduleProvider.error,
|
||||||
|
color: Theme.of(context).errorColor,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: scheduleProvider.listDoctorWorkingHoursTable.length == 0
|
||||||
|
? Center(
|
||||||
|
child: AppText(
|
||||||
|
'You don\'t have any Schedule',
|
||||||
|
color: Theme.of(context).errorColor,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: Container(
|
||||||
|
padding: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0),
|
||||||
|
child: ListView(
|
||||||
|
children: <Widget>[
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
SizedBox(
|
||||||
|
height: 20,
|
||||||
|
),
|
||||||
|
AppText('My Schedule',
|
||||||
|
fontSize:
|
||||||
|
2.5 * SizeConfig.textMultiplier),
|
||||||
|
scheduleListByDate(),
|
||||||
|
// scheduleListByDate('Wednesday, 8 April '),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Column scheduleListByDate() {
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
child: Column(
|
||||||
|
children: scheduleProvider.listDoctorWorkingHoursTable.map((item) {
|
||||||
|
return CardWithBgWidget(
|
||||||
|
widget: Container(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
AppText(item.dayName,
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
!item.workingHours.contains('and')
|
||||||
|
? AppText(item.workingHours,
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier)
|
||||||
|
: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
item.workingHours.substring(
|
||||||
|
0, item.workingHours.indexOf('a')),
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier),
|
||||||
|
AppText(
|
||||||
|
item.workingHours.substring(
|
||||||
|
item.workingHours.indexOf('d') + 2,
|
||||||
|
),
|
||||||
|
fontSize: 2.5 * SizeConfig.textMultiplier),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 8,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextStyle textStyle(size, [FontWeight weight]) {
|
||||||
|
return TextStyle(
|
||||||
|
fontSize: size * SizeConfig.textMultiplier, fontWeight: weight);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class ServicesScreen extends StatelessWidget {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
current: 2,
|
||||||
|
appBarTitle: 'Services',
|
||||||
|
body: Center(
|
||||||
|
child: Text('Services heeer'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,9 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
class DoctorReplyScreen extends StatelessWidget {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
appBar: AppBar(title: Text('DoctorReply'),),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,65 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
import '../config/size_config.dart';
|
|
||||||
import '../widgets/shared/app_scaffold_widget.dart';
|
|
||||||
import '../widgets/shared/card_with_bg_widget.dart';
|
|
||||||
|
|
||||||
class MyScheduleScreen extends StatelessWidget {
|
|
||||||
List<String> litems = [
|
|
||||||
"1",
|
|
||||||
"2",
|
|
||||||
];
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return AppScaffold(
|
|
||||||
// pageOnly: false,
|
|
||||||
appBarTitle: 'My Schdule',
|
|
||||||
body: Container(
|
|
||||||
padding: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0),
|
|
||||||
child: ListView(children: <Widget>[
|
|
||||||
Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: <Widget>[
|
|
||||||
Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: <Widget>[
|
|
||||||
SizedBox(
|
|
||||||
height: 20,
|
|
||||||
),
|
|
||||||
Text('My Schedule', style: textStyle(2.5, FontWeight.w700)),
|
|
||||||
scheduleListByDate('Today, 7 April '),
|
|
||||||
scheduleListByDate('Wednesday, 8 April '),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]),
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
Column scheduleListByDate(date) {
|
|
||||||
return Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: <Widget>[
|
|
||||||
SizedBox(
|
|
||||||
height: 10,
|
|
||||||
),
|
|
||||||
Text(date, style: textStyle(2.5)),
|
|
||||||
Container(
|
|
||||||
child: Column(
|
|
||||||
children: litems.map((item) {
|
|
||||||
return CardWithBgWidget(line1Text: 'ER new development ideas meeting',line2Text:'09:00 AM - 10:50 AM',line3Text: 'Cloud Solution',icon: Icons.add_location, heightPercentage: 0.20, widthPercentage: 0.80,);
|
|
||||||
}).toList(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
TextStyle textStyle(size, [FontWeight weight]) {
|
|
||||||
return TextStyle(
|
|
||||||
fontSize: size * SizeConfig.textMultiplier, fontWeight: weight);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,60 +1,223 @@
|
|||||||
|
/*
|
||||||
|
*@author: Amjad Amireh Merge to Elham rababah
|
||||||
|
*@Date:27/4/2020
|
||||||
|
*@param:
|
||||||
|
*@return:PatientsScreen
|
||||||
|
|
||||||
|
*@desc:
|
||||||
|
*/
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patient_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/providers/patients_provider.dart';
|
||||||
import 'package:doctor_app_flutter/routes.dart';
|
import 'package:doctor_app_flutter/routes.dart';
|
||||||
|
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
//*************
|
||||||
|
import '../../config/size_config.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
|
||||||
|
//********
|
||||||
import '../../widgets/shared/app_scaffold_widget.dart';
|
import '../../widgets/shared/app_scaffold_widget.dart';
|
||||||
import '../../widgets/shared/card_with_bg_widget.dart';
|
import '../../widgets/shared/card_with_bg_widget.dart';
|
||||||
|
|
||||||
class PatientsScreen extends StatelessWidget {
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
List<String> litems = [
|
|
||||||
"1",
|
class PatientsScreen extends StatefulWidget {
|
||||||
"1",
|
@override
|
||||||
"1",
|
_PatientsScreenState createState() => _PatientsScreenState();
|
||||||
];
|
}
|
||||||
|
|
||||||
|
class _PatientsScreenState extends State<PatientsScreen> {
|
||||||
|
List<dynamic> litems;
|
||||||
|
|
||||||
|
List<PatiantInformtion> responseModelList;
|
||||||
|
List<String> _locations = ['Today', 'Tomorrow', 'Next Week'];
|
||||||
|
int _activeLocation = 0;
|
||||||
|
|
||||||
|
bool _isInit = true;
|
||||||
|
String patientType;
|
||||||
|
String patientTypetitle;
|
||||||
|
var _isLoading = true;
|
||||||
|
|
||||||
|
var _hasError;
|
||||||
|
//*******Amjad add to search box******
|
||||||
|
final _controller = TextEditingController();
|
||||||
|
//**************
|
||||||
|
PatientModel patient;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
|
||||||
|
|
||||||
|
patient = routeArgs['patientSearchForm'];
|
||||||
|
|
||||||
|
print(patient.TokenID + "EEEEEE");
|
||||||
|
|
||||||
|
patientType = routeArgs['selectedType'];
|
||||||
|
patientTypetitle = SERVICES_PATIANT_HEADER[int.parse(patientType)];
|
||||||
|
|
||||||
|
print("**************patiant Type**************");
|
||||||
|
print(patientType);
|
||||||
|
|
||||||
|
if (_isInit) {
|
||||||
|
PatientsProvider patientsProv = Provider.of<PatientsProvider>(context);
|
||||||
|
patientsProv.getPatientList(patient, patientType).then((res) {
|
||||||
|
print('List_MyInPatient${(res['List_MyInPatient'])}');
|
||||||
|
setState(() {
|
||||||
|
int val2 = int.parse(patientType);
|
||||||
|
litems = res[SERVICES_PATIANT2[val2]];
|
||||||
|
|
||||||
|
final List parsed = litems;
|
||||||
|
|
||||||
|
responseModelList = new ModelResponse.fromJson(parsed).list;
|
||||||
|
//********************
|
||||||
|
_isLoading = false;
|
||||||
|
_hasError = res['ErrorEndUserMessage'];
|
||||||
|
});
|
||||||
|
print(res);
|
||||||
|
}).catchError((error) {
|
||||||
|
print(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
_isInit = false;
|
||||||
|
super.didChangeDependencies();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
PatientsProvider patientsProv = Provider.of<PatientsProvider>(context);
|
||||||
|
|
||||||
return AppScaffold(
|
return AppScaffold(
|
||||||
appBarTitle: 'Patients',
|
appBarTitle: patientTypetitle,
|
||||||
|
//***********Modify by amjad (create List view to insert all new data webservise in scroll )*************
|
||||||
body: Container(
|
body: Container(
|
||||||
child: Column(
|
child: ListView(scrollDirection: Axis.vertical, children: <Widget>[
|
||||||
children: litems.map((item) {
|
Container(
|
||||||
|
child: litems == null
|
||||||
|
? Column()
|
||||||
|
: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
top: MediaQuery.of(context).size.height * 0.03),
|
||||||
|
child: _locationBar(context),
|
||||||
|
),
|
||||||
|
SizedBox(height: 10.0),
|
||||||
|
Container(
|
||||||
|
width: SizeConfig.screenWidth * 0.80,
|
||||||
|
child: TextField(
|
||||||
|
controller: _controller,
|
||||||
|
onSubmitted: (value) {
|
||||||
|
// fetch all the news related to the keyword
|
||||||
|
if (value.isNotEmpty) {
|
||||||
|
// vm.search(value);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
decoration:
|
||||||
|
buildInputDecoration(context, 'Search patiant'),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
children:
|
||||||
|
responseModelList.map((PatiantInformtion item) {
|
||||||
return InkWell(
|
return InkWell(
|
||||||
child: CardWithBgWidget(
|
child: CardWithBgWidget(
|
||||||
line1Text: 'Fahad AlSlehm - 324599',
|
widget: Column(
|
||||||
line2Text: '12/04/2020 - 02:00 PM',
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
heightPercentage: 0.15,
|
children: <Widget>[
|
||||||
widthPercentage: 0.80),
|
AppText(
|
||||||
onTap: (){
|
item.nationalityName,
|
||||||
Navigator.of(context).pushNamed(PATIENTS_PROFILE);
|
fontSize: 2.5 * SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
AppText(item.lastName,
|
||||||
|
fontSize:
|
||||||
|
2.5 * SizeConfig.textMultiplier),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
AppText(item.middleName,
|
||||||
|
fontSize:
|
||||||
|
2.5 * SizeConfig.textMultiplier),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.of(context).pushNamed(
|
||||||
|
PATIENTS_PROFILE,
|
||||||
|
arguments: {"patient": item});
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}).toList(),
|
}).toList(),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
);
|
))
|
||||||
|
])));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
class CustomShapeClipper extends CustomClipper<Path> {
|
//***********amjad update**buildInputDecoration ***to search box********
|
||||||
@override
|
InputDecoration buildInputDecoration(BuildContext context, hint) {
|
||||||
Path getClip(Size size) {
|
return InputDecoration(
|
||||||
final Path path = Path();
|
prefixIcon: Icon(Icons.search, color: Colors.red),
|
||||||
path.lineTo(0.0, size.height);
|
filled: true,
|
||||||
|
fillColor: Colors.white,
|
||||||
var firstEndPoint = Offset(size.width * .5, size.height / 2);
|
hintText: hint,
|
||||||
var firstControlpoint = Offset(size.width * 0.25, size.height * 0.95 + 30);
|
hintStyle: TextStyle(fontSize: 2 * SizeConfig.textMultiplier),
|
||||||
path.quadraticBezierTo(firstControlpoint.dx, firstControlpoint.dy,
|
enabledBorder: OutlineInputBorder(
|
||||||
firstEndPoint.dx, firstEndPoint.dy);
|
borderRadius: BorderRadius.all(Radius.circular(20)),
|
||||||
|
borderSide: BorderSide(color: Hexcolor('#CCCCCC')),
|
||||||
var secondEndPoint = Offset(size.width, size.height * 0.10);
|
),
|
||||||
var secondControlPoint = Offset(size.width * .75, size.height * .10 - 20);
|
focusedBorder: OutlineInputBorder(
|
||||||
path.quadraticBezierTo(secondControlPoint.dx, secondControlPoint.dy,
|
borderRadius: BorderRadius.all(Radius.circular(10.0)),
|
||||||
secondEndPoint.dx, secondEndPoint.dy);
|
borderSide: BorderSide(color: Theme.of(context).primaryColor),
|
||||||
|
));
|
||||||
path.lineTo(size.width, 0.0);
|
|
||||||
path.close();
|
|
||||||
return path;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
Widget _locationBar(BuildContext _context) {
|
||||||
bool shouldReclip(CustomClipper oldClipper) => true;
|
return Container(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.065,
|
||||||
|
width: SizeConfig.screenWidth * 0.80,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Color(0Xff59434f), borderRadius: BorderRadius.circular(20)),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: _locations.map((l) {
|
||||||
|
bool _isActive = _locations[_activeLocation] == l ? true : false;
|
||||||
|
return Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
|
||||||
|
InkWell(
|
||||||
|
child: Text(
|
||||||
|
l,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 15,
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
print(l);
|
||||||
|
print(_locations.indexOf(l));
|
||||||
|
setState(() {
|
||||||
|
_activeLocation = _locations.indexOf(l);
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
_isActive
|
||||||
|
? Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
color: Colors.white),
|
||||||
|
height: 3,
|
||||||
|
width: 80,
|
||||||
|
)
|
||||||
|
: Container()
|
||||||
|
]);
|
||||||
|
}).toList(),
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../widgets/patients/profile/patient_profile_widget.dart';
|
import '../../../widgets/patients/profile/patient_profile_widget.dart';
|
||||||
import '../../widgets/shared/app_scaffold_widget.dart';
|
import '../../../widgets/shared/app_scaffold_widget.dart';
|
||||||
|
|
||||||
class PatientProfileScreen extends StatelessWidget {
|
class PatientProfileScreen extends StatelessWidget {
|
||||||
const PatientProfileScreen({Key key}) : super(key: key);
|
const PatientProfileScreen({Key key}) : super(key: key);
|
||||||
@ -0,0 +1,164 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import '../../../../config/shared_pref_kay.dart';
|
||||||
|
import '../../../../models/patient/vital_sign_req_model.dart';
|
||||||
|
import '../../../../providers/patients_provider.dart';
|
||||||
|
|
||||||
|
import '../../../../util/dr_app_shared_pref.dart';
|
||||||
|
import '../../../../widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import '../../../../widgets/shared/card_with_bg_widget.dart';
|
||||||
|
import '../../../../widgets/shared/dr_app_circular_progress_Indeicator.dart';
|
||||||
|
|
||||||
|
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
|
||||||
|
|
||||||
|
/*
|
||||||
|
*@author: Elham Rababah
|
||||||
|
*@Date:26/4/2020
|
||||||
|
*@param:
|
||||||
|
*@return:VitalSignScreen
|
||||||
|
*@desc: VitalSignScreen class
|
||||||
|
*/
|
||||||
|
|
||||||
|
class VitalSignScreen extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_VitalSignScreenState createState() => _VitalSignScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _VitalSignScreenState extends State<VitalSignScreen> {
|
||||||
|
PatientsProvider patientsProv;
|
||||||
|
var _isInit = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*@author: Elham Rababah
|
||||||
|
*@Date:28/4/2020
|
||||||
|
*@param: context
|
||||||
|
*@return:
|
||||||
|
*@desc: getVitalSignList Function
|
||||||
|
*/
|
||||||
|
getVitalSignList(context) async {
|
||||||
|
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
|
||||||
|
PatiantInformtion patient = routeArgs['patient'];
|
||||||
|
String token = await sharedPref.getString(TOKEN);
|
||||||
|
VitalSignReqModel vitalSignReqModel = VitalSignReqModel(
|
||||||
|
patientID: patient.patientId,
|
||||||
|
projectID: patient.projectId,
|
||||||
|
tokenID: token,
|
||||||
|
patientTypeID: patient.patientType,
|
||||||
|
inOutpatientType: 1,
|
||||||
|
languageID: 2,
|
||||||
|
transNo:
|
||||||
|
patient.admissionNo != null ? int.parse(patient.admissionNo) : 0);
|
||||||
|
patientsProv.getPatientVitalSign(vitalSignReqModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
super.didChangeDependencies();
|
||||||
|
if (_isInit) {
|
||||||
|
patientsProv = Provider.of<PatientsProvider>(context);
|
||||||
|
getVitalSignList(context);
|
||||||
|
}
|
||||||
|
_isInit = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
appBarTitle: "VITAL SIGN",
|
||||||
|
showAppDrawer: false,
|
||||||
|
showBottomBar: false,
|
||||||
|
body: patientsProv.isLoading
|
||||||
|
? DrAppCircularProgressIndeicator()
|
||||||
|
: patientsProv.isError
|
||||||
|
? Center(
|
||||||
|
child: Text(
|
||||||
|
patientsProv.error,
|
||||||
|
style: TextStyle(color: Theme.of(context).errorColor),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: patientsProv.patientVitalSignList.length == 0
|
||||||
|
? Center(
|
||||||
|
child: Text(
|
||||||
|
'You don\'t have any Schedule',
|
||||||
|
style: TextStyle(color: Theme.of(context).errorColor),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: Container(
|
||||||
|
margin: EdgeInsets.fromLTRB(
|
||||||
|
SizeConfig.realScreenWidth * 0.05,
|
||||||
|
0,
|
||||||
|
SizeConfig.realScreenWidth * 0.05,
|
||||||
|
0),
|
||||||
|
child: ListView.builder(
|
||||||
|
itemCount: patientsProv.patientVitalSignList.length,
|
||||||
|
itemBuilder: (BuildContext ctxt, int index) {
|
||||||
|
return InkWell(
|
||||||
|
child: CardWithBgWidget(
|
||||||
|
widget: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Row(
|
||||||
|
children: <Widget>[
|
||||||
|
CircleAvatar(
|
||||||
|
radius:
|
||||||
|
SizeConfig.imageSizeMultiplier *
|
||||||
|
12,
|
||||||
|
backgroundImage: NetworkImage(
|
||||||
|
patientsProv
|
||||||
|
.patientVitalSignList[index]
|
||||||
|
.doctorImageURL),
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.fromLTRB(8,0,0,0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
AppText(
|
||||||
|
'${patientsProv.patientVitalSignList[index].doctorName}',
|
||||||
|
fontSize: 2.5 *
|
||||||
|
SizeConfig.textMultiplier,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
' ${patientsProv.patientVitalSignList[index].clinicName}',
|
||||||
|
fontSize: 2.5 *
|
||||||
|
SizeConfig.textMultiplier),
|
||||||
|
SizedBox(
|
||||||
|
height: 8,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {},
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// patientsProv.patientVitalSignList.map((VitalSignResModel item) {
|
||||||
|
// return InkWell(
|
||||||
|
// child: CardWithBgWidget(
|
||||||
|
// line1Text: 'DoctorName - ${item.doctorName}',
|
||||||
|
// line2Text:
|
||||||
|
// 'PainScoreDesc - ${item.painScoreDesc}',
|
||||||
|
// heightPercentage: 0.15,
|
||||||
|
// widthPercentage: 0.80),
|
||||||
|
// onTap: () {
|
||||||
|
// Navigator.of(context).pushNamed(VITAL_SIGN);
|
||||||
|
// },
|
||||||
|
// );
|
||||||
|
// }).toList()
|
||||||
Loading…
Reference in New Issue