Merge branch 'design-updates' into 'development'
Design updates See merge request Cloud_Solution/doctor_app_flutter!195pull/200/head
commit
fb962acbc0
@ -0,0 +1,106 @@
|
|||||||
|
class PostPrescriptionReqModel {
|
||||||
|
String vidaAuthTokenID;
|
||||||
|
int clinicID;
|
||||||
|
int episodeID;
|
||||||
|
int appointmentNo;
|
||||||
|
int patientMRN;
|
||||||
|
List<PrescriptionRequestModel> prescriptionRequestModel;
|
||||||
|
|
||||||
|
PostPrescriptionReqModel(
|
||||||
|
{this.vidaAuthTokenID =
|
||||||
|
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDAyIiwianRpIjoiYTYxZjAyZjItNzUwZS00MTZkLWEzOTQtZTRjZmViZGVjMDE5IiwiZW1haWwiOiIiLCJpZCI6IjEwMDIiLCJOYW1lIjoiVEVNUCAtIERPQ1RPUiIsIkVtcGxveWVlSWQiOiIxNDg1IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiIxNDg1IiwiU0VTU0lPTklEIjoiMjE1ODUzNTIiLCJDbGluaWNJZCI6IjMiLCJyb2xlIjoiRE9DVE9SUyIsIm5iZiI6MTYwODUzMDAyNywiZXhwIjoxNjA5Mzk0MDI3LCJpYXQiOjE2MDg1MzAwMjd9.M1NTREPgz5vQH_GTZ_KGb0xQW5HEDs47AtNR3jbqnms",
|
||||||
|
this.clinicID = 1,
|
||||||
|
this.episodeID = 200012117,
|
||||||
|
this.appointmentNo = 2016054573,
|
||||||
|
this.patientMRN = 3120690,
|
||||||
|
this.prescriptionRequestModel});
|
||||||
|
|
||||||
|
PostPrescriptionReqModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
vidaAuthTokenID = json['VidaAuthTokenID'];
|
||||||
|
clinicID = json['ClinicID'];
|
||||||
|
episodeID = json['EpisodeID'];
|
||||||
|
appointmentNo = json['AppointmentNo'];
|
||||||
|
patientMRN = json['PatientMRN'];
|
||||||
|
if (json['prescriptionRequestModel'] != null) {
|
||||||
|
prescriptionRequestModel = new List<PrescriptionRequestModel>();
|
||||||
|
json['prescriptionRequestModel'].forEach((v) {
|
||||||
|
prescriptionRequestModel.add(new PrescriptionRequestModel.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
|
||||||
|
data['ClinicID'] = this.clinicID;
|
||||||
|
data['EpisodeID'] = this.episodeID;
|
||||||
|
data['AppointmentNo'] = this.appointmentNo;
|
||||||
|
data['PatientMRN'] = this.patientMRN;
|
||||||
|
if (this.prescriptionRequestModel != null) {
|
||||||
|
data['prescriptionRequestModel'] =
|
||||||
|
this.prescriptionRequestModel.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PrescriptionRequestModel {
|
||||||
|
int itemId;
|
||||||
|
String doseStartDate;
|
||||||
|
int duration;
|
||||||
|
int dose;
|
||||||
|
int doseUnitId;
|
||||||
|
int route;
|
||||||
|
int frequency;
|
||||||
|
int doseTime;
|
||||||
|
bool covered;
|
||||||
|
bool approvalRequired;
|
||||||
|
String remarks;
|
||||||
|
String icdcode10Id;
|
||||||
|
|
||||||
|
PrescriptionRequestModel(
|
||||||
|
{this.itemId = 4,
|
||||||
|
this.doseStartDate = "2020-12-20T13:07:41.769Z",
|
||||||
|
this.duration = 2,
|
||||||
|
this.dose = 1,
|
||||||
|
this.doseUnitId = 1,
|
||||||
|
this.route = 1,
|
||||||
|
this.frequency = 1,
|
||||||
|
this.doseTime = 1,
|
||||||
|
this.covered = true,
|
||||||
|
this.approvalRequired = true,
|
||||||
|
this.remarks = "test1",
|
||||||
|
this.icdcode10Id = "test3"});
|
||||||
|
|
||||||
|
PrescriptionRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
itemId = json['itemId'];
|
||||||
|
doseStartDate = json['doseStartDate'];
|
||||||
|
duration = json['duration'];
|
||||||
|
dose = json['dose'];
|
||||||
|
doseUnitId = json['doseUnitId'];
|
||||||
|
route = json['route'];
|
||||||
|
frequency = json['frequency'];
|
||||||
|
doseTime = json['doseTime'];
|
||||||
|
covered = json['covered'];
|
||||||
|
approvalRequired = json['approvalRequired'];
|
||||||
|
remarks = json['remarks'];
|
||||||
|
icdcode10Id = json['icdcode10Id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['itemId'] = this.itemId;
|
||||||
|
data['doseStartDate'] = this.doseStartDate;
|
||||||
|
data['duration'] = this.duration;
|
||||||
|
data['dose'] = this.dose;
|
||||||
|
data['doseUnitId'] = this.doseUnitId;
|
||||||
|
data['route'] = this.route;
|
||||||
|
data['frequency'] = this.frequency;
|
||||||
|
data['doseTime'] = this.doseTime;
|
||||||
|
data['covered'] = this.covered;
|
||||||
|
data['approvalRequired'] = this.approvalRequired;
|
||||||
|
data['remarks'] = this.remarks;
|
||||||
|
data['icdcode10Id'] = this.icdcode10Id;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,157 @@
|
|||||||
|
class PrescriptionModel {
|
||||||
|
List<EntityList> entityList;
|
||||||
|
dynamic rowcount;
|
||||||
|
dynamic statusMessage;
|
||||||
|
|
||||||
|
PrescriptionModel({this.entityList, this.rowcount, this.statusMessage});
|
||||||
|
|
||||||
|
PrescriptionModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
if (json['entityList'] != null) {
|
||||||
|
entityList = new List<EntityList>();
|
||||||
|
json['entityList'].forEach((v) {
|
||||||
|
entityList.add(new EntityList.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
rowcount = json['rowcount'];
|
||||||
|
statusMessage = json['statusMessage'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
if (this.entityList != null) {
|
||||||
|
data['entityList'] = this.entityList.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
data['rowcount'] = this.rowcount;
|
||||||
|
data['statusMessage'] = this.statusMessage;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class EntityList {
|
||||||
|
dynamic appointmentNo;
|
||||||
|
dynamic clinicName;
|
||||||
|
dynamic createdBy;
|
||||||
|
dynamic createdOn;
|
||||||
|
dynamic doctorName;
|
||||||
|
dynamic doseDailyQuantity;
|
||||||
|
dynamic doseDailyUnitID;
|
||||||
|
dynamic doseDetail;
|
||||||
|
dynamic doseDurationDays;
|
||||||
|
dynamic doseTimingID;
|
||||||
|
dynamic episodeID;
|
||||||
|
dynamic frequencyID;
|
||||||
|
dynamic icdCode10ID;
|
||||||
|
dynamic indication;
|
||||||
|
dynamic isDispensed;
|
||||||
|
dynamic isMedicineCovered;
|
||||||
|
dynamic isSIG;
|
||||||
|
dynamic medicationName;
|
||||||
|
dynamic medicationPrice;
|
||||||
|
dynamic medicineCode;
|
||||||
|
dynamic orderTypeDescription;
|
||||||
|
dynamic qty;
|
||||||
|
dynamic quantity;
|
||||||
|
dynamic remarks;
|
||||||
|
dynamic routeID;
|
||||||
|
dynamic startDate;
|
||||||
|
dynamic status;
|
||||||
|
dynamic stopDate;
|
||||||
|
dynamic uom;
|
||||||
|
|
||||||
|
EntityList(
|
||||||
|
{this.appointmentNo,
|
||||||
|
this.clinicName,
|
||||||
|
this.createdBy,
|
||||||
|
this.createdOn,
|
||||||
|
this.doctorName,
|
||||||
|
this.doseDailyQuantity,
|
||||||
|
this.doseDailyUnitID,
|
||||||
|
this.doseDetail,
|
||||||
|
this.doseDurationDays,
|
||||||
|
this.doseTimingID,
|
||||||
|
this.episodeID,
|
||||||
|
this.frequencyID,
|
||||||
|
this.icdCode10ID,
|
||||||
|
this.indication,
|
||||||
|
this.isDispensed,
|
||||||
|
this.isMedicineCovered,
|
||||||
|
this.isSIG,
|
||||||
|
this.medicationName,
|
||||||
|
this.medicationPrice,
|
||||||
|
this.medicineCode,
|
||||||
|
this.orderTypeDescription,
|
||||||
|
this.qty,
|
||||||
|
this.quantity,
|
||||||
|
this.remarks,
|
||||||
|
this.routeID,
|
||||||
|
this.startDate,
|
||||||
|
this.status,
|
||||||
|
this.stopDate,
|
||||||
|
this.uom});
|
||||||
|
|
||||||
|
EntityList.fromJson(Map<String, dynamic> json) {
|
||||||
|
appointmentNo = json['appointmentNo'];
|
||||||
|
clinicName = json['clinicName'];
|
||||||
|
createdBy = json['createdBy'];
|
||||||
|
createdOn = json['createdOn'];
|
||||||
|
doctorName = json['doctorName'];
|
||||||
|
doseDailyQuantity = json['doseDailyQuantity'];
|
||||||
|
doseDailyUnitID = json['doseDailyUnitID'];
|
||||||
|
doseDetail = json['doseDetail'];
|
||||||
|
doseDurationDays = json['doseDurationDays'];
|
||||||
|
doseTimingID = json['doseTimingID'];
|
||||||
|
episodeID = json['episodeID'];
|
||||||
|
frequencyID = json['frequencyID'];
|
||||||
|
icdCode10ID = json['icdCode10ID'];
|
||||||
|
indication = json['indication'];
|
||||||
|
isDispensed = json['isDispensed'];
|
||||||
|
isMedicineCovered = json['isMedicineCovered'];
|
||||||
|
isSIG = json['isSIG'];
|
||||||
|
medicationName = json['medicationName'];
|
||||||
|
medicationPrice = json['medicationPrice'];
|
||||||
|
medicineCode = json['medicineCode'];
|
||||||
|
orderTypeDescription = json['orderTypeDescription'];
|
||||||
|
qty = json['qty'];
|
||||||
|
quantity = json['quantity'];
|
||||||
|
remarks = json['remarks'];
|
||||||
|
routeID = json['routeID'];
|
||||||
|
startDate = json['startDate'];
|
||||||
|
status = json['status'];
|
||||||
|
stopDate = json['stopDate'];
|
||||||
|
uom = json['uom'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['appointmentNo'] = this.appointmentNo;
|
||||||
|
data['clinicName'] = this.clinicName;
|
||||||
|
data['createdBy'] = this.createdBy;
|
||||||
|
data['createdOn'] = this.createdOn;
|
||||||
|
data['doctorName'] = this.doctorName;
|
||||||
|
data['doseDailyQuantity'] = this.doseDailyQuantity;
|
||||||
|
data['doseDailyUnitID'] = this.doseDailyUnitID;
|
||||||
|
data['doseDetail'] = this.doseDetail;
|
||||||
|
data['doseDurationDays'] = this.doseDurationDays;
|
||||||
|
data['doseTimingID'] = this.doseTimingID;
|
||||||
|
data['episodeID'] = this.episodeID;
|
||||||
|
data['frequencyID'] = this.frequencyID;
|
||||||
|
data['icdCode10ID'] = this.icdCode10ID;
|
||||||
|
data['indication'] = this.indication;
|
||||||
|
data['isDispensed'] = this.isDispensed;
|
||||||
|
data['isMedicineCovered'] = this.isMedicineCovered;
|
||||||
|
data['isSIG'] = this.isSIG;
|
||||||
|
data['medicationName'] = this.medicationName;
|
||||||
|
data['medicationPrice'] = this.medicationPrice;
|
||||||
|
data['medicineCode'] = this.medicineCode;
|
||||||
|
data['orderTypeDescription'] = this.orderTypeDescription;
|
||||||
|
data['qty'] = this.qty;
|
||||||
|
data['quantity'] = this.quantity;
|
||||||
|
data['remarks'] = this.remarks;
|
||||||
|
data['routeID'] = this.routeID;
|
||||||
|
data['startDate'] = this.startDate;
|
||||||
|
data['status'] = this.status;
|
||||||
|
data['stopDate'] = this.stopDate;
|
||||||
|
data['uom'] = this.uom;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
class PrescriptionReqModel {
|
||||||
|
String vidaAuthTokenID;
|
||||||
|
dynamic patientMRN;
|
||||||
|
|
||||||
|
PrescriptionReqModel({this.vidaAuthTokenID, this.patientMRN});
|
||||||
|
|
||||||
|
PrescriptionReqModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
vidaAuthTokenID = json['VidaAuthTokenID'];
|
||||||
|
patientMRN = json['PatientMRN'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
|
||||||
|
data['PatientMRN'] = this.patientMRN;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
class GetProcedureModel {
|
||||||
|
List<EntityList> entityList;
|
||||||
|
int rowcount;
|
||||||
|
dynamic statusMessage;
|
||||||
|
|
||||||
|
GetProcedureModel({this.entityList, this.rowcount, this.statusMessage});
|
||||||
|
|
||||||
|
GetProcedureModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
if (json['entityList'] != null) {
|
||||||
|
entityList = new List<EntityList>();
|
||||||
|
json['entityList'].forEach((v) {
|
||||||
|
entityList.add(new EntityList.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
rowcount = json['rowcount'];
|
||||||
|
statusMessage = json['statusMessage'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
if (this.entityList != null) {
|
||||||
|
data['entityList'] = this.entityList.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
data['rowcount'] = this.rowcount;
|
||||||
|
data['statusMessage'] = this.statusMessage;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class EntityList {
|
||||||
|
bool allowedClinic;
|
||||||
|
String category;
|
||||||
|
String categoryID;
|
||||||
|
String genderValidation;
|
||||||
|
String group;
|
||||||
|
String orderedValidation;
|
||||||
|
int price;
|
||||||
|
String procedureId;
|
||||||
|
String procedureName;
|
||||||
|
String specialPermission;
|
||||||
|
String subGroup;
|
||||||
|
String template;
|
||||||
|
|
||||||
|
EntityList(
|
||||||
|
{this.allowedClinic,
|
||||||
|
this.category,
|
||||||
|
this.categoryID,
|
||||||
|
this.genderValidation,
|
||||||
|
this.group,
|
||||||
|
this.orderedValidation,
|
||||||
|
this.price,
|
||||||
|
this.procedureId,
|
||||||
|
this.procedureName,
|
||||||
|
this.specialPermission,
|
||||||
|
this.subGroup,
|
||||||
|
this.template});
|
||||||
|
|
||||||
|
EntityList.fromJson(Map<String, dynamic> json) {
|
||||||
|
allowedClinic = json['allowedClinic'];
|
||||||
|
category = json['category'];
|
||||||
|
categoryID = json['categoryID'];
|
||||||
|
genderValidation = json['genderValidation'];
|
||||||
|
group = json['group'];
|
||||||
|
orderedValidation = json['orderedValidation'];
|
||||||
|
price = json['price'];
|
||||||
|
procedureId = json['procedureId'];
|
||||||
|
procedureName = json['procedureName'];
|
||||||
|
specialPermission = json['specialPermission'];
|
||||||
|
subGroup = json['subGroup'];
|
||||||
|
template = json['template'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['allowedClinic'] = this.allowedClinic;
|
||||||
|
data['category'] = this.category;
|
||||||
|
data['categoryID'] = this.categoryID;
|
||||||
|
data['genderValidation'] = this.genderValidation;
|
||||||
|
data['group'] = this.group;
|
||||||
|
data['orderedValidation'] = this.orderedValidation;
|
||||||
|
data['price'] = this.price;
|
||||||
|
data['procedureId'] = this.procedureId;
|
||||||
|
data['procedureName'] = this.procedureName;
|
||||||
|
data['specialPermission'] = this.specialPermission;
|
||||||
|
data['subGroup'] = this.subGroup;
|
||||||
|
data['template'] = this.template;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
class GetProcedureReqModel {
|
||||||
|
int clinicId;
|
||||||
|
int patientMRN;
|
||||||
|
int pageSize;
|
||||||
|
int pageIndex;
|
||||||
|
List<String> search;
|
||||||
|
dynamic categoryId;
|
||||||
|
String vidaAuthTokenID;
|
||||||
|
|
||||||
|
GetProcedureReqModel(
|
||||||
|
{this.clinicId,
|
||||||
|
this.patientMRN,
|
||||||
|
this.pageSize,
|
||||||
|
this.pageIndex,
|
||||||
|
this.search,
|
||||||
|
this.categoryId,
|
||||||
|
this.vidaAuthTokenID});
|
||||||
|
|
||||||
|
GetProcedureReqModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
clinicId = json['ClinicId'];
|
||||||
|
patientMRN = json['PatientMRN'];
|
||||||
|
pageSize = json['PageSize'];
|
||||||
|
pageIndex = json['PageIndex'];
|
||||||
|
search = json['Search'].cast<String>();
|
||||||
|
categoryId = json['CategoryId'];
|
||||||
|
vidaAuthTokenID = json['VidaAuthTokenID'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ClinicId'] = this.clinicId;
|
||||||
|
data['PatientMRN'] = this.patientMRN;
|
||||||
|
data['PageSize'] = this.pageSize;
|
||||||
|
data['PageIndex'] = this.pageIndex;
|
||||||
|
data['Search'] = this.search;
|
||||||
|
data['CategoryId'] = this.categoryId;
|
||||||
|
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,87 @@
|
|||||||
|
class PostProcedureReqModel {
|
||||||
|
int patientMRN;
|
||||||
|
int appointmentNo;
|
||||||
|
int episodeID;
|
||||||
|
List<Procedures> procedures;
|
||||||
|
String vidaAuthTokenID;
|
||||||
|
|
||||||
|
PostProcedureReqModel(
|
||||||
|
{this.patientMRN,
|
||||||
|
this.appointmentNo,
|
||||||
|
this.episodeID,
|
||||||
|
this.procedures,
|
||||||
|
this.vidaAuthTokenID});
|
||||||
|
|
||||||
|
PostProcedureReqModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
patientMRN = json['PatientMRN'];
|
||||||
|
appointmentNo = json['AppointmentNo'];
|
||||||
|
episodeID = json['EpisodeID'];
|
||||||
|
if (json['Procedures'] != null) {
|
||||||
|
procedures = new List<Procedures>();
|
||||||
|
json['Procedures'].forEach((v) {
|
||||||
|
procedures.add(new Procedures.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
vidaAuthTokenID = json['VidaAuthTokenID'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['PatientMRN'] = this.patientMRN;
|
||||||
|
data['AppointmentNo'] = this.appointmentNo;
|
||||||
|
data['EpisodeID'] = this.episodeID;
|
||||||
|
if (this.procedures != null) {
|
||||||
|
data['Procedures'] = this.procedures.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
data['VidaAuthTokenID'] = this.vidaAuthTokenID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Procedures {
|
||||||
|
String procedure;
|
||||||
|
String category;
|
||||||
|
List<Controls> controls;
|
||||||
|
|
||||||
|
Procedures({this.procedure, this.category, this.controls});
|
||||||
|
|
||||||
|
Procedures.fromJson(Map<String, dynamic> json) {
|
||||||
|
procedure = json['Procedure'];
|
||||||
|
category = json['Category'];
|
||||||
|
if (json['Controls'] != null) {
|
||||||
|
controls = new List<Controls>();
|
||||||
|
json['Controls'].forEach((v) {
|
||||||
|
controls.add(new Controls.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['Procedure'] = this.procedure;
|
||||||
|
data['Category'] = this.category;
|
||||||
|
if (this.controls != null) {
|
||||||
|
data['Controls'] = this.controls.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Controls {
|
||||||
|
String code;
|
||||||
|
String controlValue;
|
||||||
|
|
||||||
|
Controls({this.code, this.controlValue});
|
||||||
|
|
||||||
|
Controls.fromJson(Map<String, dynamic> json) {
|
||||||
|
code = json['Code'];
|
||||||
|
controlValue = json['ControlValue'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['Code'] = this.code;
|
||||||
|
data['ControlValue'] = this.controlValue;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/Prescription_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/prescription_req_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/post_prescrition_req_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
|
||||||
|
|
||||||
|
class PrescriptionService extends BaseService {
|
||||||
|
List<PrescriptionModel> _prescriptionList = List();
|
||||||
|
List<PrescriptionModel> get prescriptionList => _prescriptionList;
|
||||||
|
|
||||||
|
PrescriptionReqModel _prescriptionReqModel = PrescriptionReqModel(
|
||||||
|
patientMRN: 1231755,
|
||||||
|
vidaAuthTokenID:
|
||||||
|
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyODA0IiwianRpIjoiNzNiNmUyZDctMjA0ZC00NzAyLTkxMDYtODE3MzI3OTZkYzI5IiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMjgwNCIsIk5hbWUiOiJNVUhBTU1BRCBBWkFNIiwiRW1wbG95ZWVJZCI6IjE0ODUiLCJGYWNpbGl0eUdyb3VwSWQiOiIwMTAyNjYiLCJGYWNpbGl0eUlkIjoiMTUiLCJQaGFyYW1jeUZhY2lsaXR5SWQiOiI1NSIsIklTX1BIQVJNQUNZX0NPTk5FQ1RFRCI6IlRydWUiLCJEb2N0b3JJZCI6IjE0ODUiLCJTRVNTSU9OSUQiOiIyMTU3NjIwOSIsIkNsaW5pY0lkIjoiMyIsInJvbGUiOlsiU0VDVVJJVFkgQURNSU5JU1RSQVRPUlMiLCJTRVRVUCBBRE1JTklTVFJBVE9SUyIsIkNFTydTIiwiRVhFQ1VUSVZFIERJUkVDVE9SUyIsIk1BTkFHRVJTIiwiU1VQRVJWSVNPUlMiLCJDTElFTlQgU0VSVklDRVMgQ09PUkRJTkFUT1JTIiwiQ0xJRU5UIFNFUlZJQ0VTIFNVUEVSVklTT1JTIiwiQ0xJRU5UIFNFUlZJQ0VTIE1BTkdFUlMiLCJIRUFEIE5VUlNFUyIsIkRPQ1RPUlMiLCJDSElFRiBPRiBNRURJQ0FMIFNUQUZGUyIsIkJJTy1NRURJQ0FMIFRFQ0hOSUNJQU5TIiwiQklPLU1FRElDQUwgRU5HSU5FRVJTIiwiQklPLU1FRElDQUwgREVQQVJUTUVOVCBIRUFEUyIsIklUIEhFTFAgREVTSyIsIkFETUlOSVNUUkFUT1JTIiwiTEFCIEFETUlOSVNUUkFUT1IiLCJMQUIgVEVDSE5JQ0lBTiIsIkJVU0lORVNTIE9GRklDRSBTVEFGRiIsIkZJTkFOQ0UgQUNDT1VOVEFOVFMiLCJQSEFSTUFDWSBTVEFGRiIsIkFDQ09VTlRTIFNUQUZGIiwiTEFCIFJFQ0VQVElPTklTVCIsIkVSIE5VUlNFIiwiSU5QQVRJRU5UIEJJTExJTkcgU1VQRVJWSVNPUiIsIkxEUi1PUiBOVVJTRVMiLCJBRE1JU1NJT04gU1RBRkYiLCJIRUxQIERFU0sgQURNSU4iLCJBUFBST1ZBTCBTVEFGRiIsIklOUEFUSUVOVCBCSUxMSU5HIENPT1JESU5BVE9SIiwiQklMTElORyBTVEFGRiIsIkNPTlNFTlQgIiwiQ29uc2VudCAtIERlbnRhbCIsIldFQkVNUiJdLCJuYmYiOjE2MDgyMzY2MjAsImV4cCI6MTYwOTEwMDYyMCwiaWF0IjoxNjA4MjM2NjIwfQ.z4Lh0dCRr9GWXvaTo7x5GPV7R5z8ONyh3-0uk3PXMu8",
|
||||||
|
);
|
||||||
|
|
||||||
|
PostPrescriptionReqModel _postPrescriptionReqModel =
|
||||||
|
PostPrescriptionReqModel();
|
||||||
|
|
||||||
|
Future getPrescription() async {
|
||||||
|
hasError = false;
|
||||||
|
_prescriptionList.clear();
|
||||||
|
await baseAppClient.post(GET_PRESCRIPTION_LIST,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_prescriptionList
|
||||||
|
.add(PrescriptionModel.fromJson(response['PrescriptionList']));
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: _prescriptionReqModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
Future postPrescription() async {
|
||||||
|
hasError = false;
|
||||||
|
//_prescriptionList.clear();
|
||||||
|
await baseAppClient.post(POST_PRESCRIPTION_LIST,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_prescriptionList
|
||||||
|
.add(PrescriptionModel.fromJson(response['PrescriptionList']));
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: _postPrescriptionReqModel.toJson());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/procedure/get_procedure_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/procedure/get_procedure_req_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
|
||||||
|
|
||||||
|
class ProcedureService extends BaseService {
|
||||||
|
List<GetProcedureModel> _procedureList = List();
|
||||||
|
List<GetProcedureModel> get procedureList => _procedureList;
|
||||||
|
|
||||||
|
GetProcedureReqModel _getProcedureReqModel = GetProcedureReqModel(
|
||||||
|
clinicId: 0,
|
||||||
|
pageSize: 10,
|
||||||
|
pageIndex: 1,
|
||||||
|
patientMRN: 0,
|
||||||
|
//categoryId: null,
|
||||||
|
vidaAuthTokenID:
|
||||||
|
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxNDg1IiwianRpIjoiZjQ4YTk0OTQtYTczZS00MDI3LWI2MjgtNzc4MjAwMzUyYWEzIiwiZW1haWwiOiJNb2hhbWVkLlJlc3dhbkBjbG91ZHNvbHV0aW9uLXNhLmNvbSIsImlkIjoiMTQ4NSIsIk5hbWUiOiJTSEFLRVJBIFBBUlZFRU4gKFVTRUQgQlkgRVNFUlZJQ0VTKSIsIkVtcGxveWVlSWQiOiIxNDg1IiwiRmFjaWxpdHlHcm91cElkIjoiMDEwMjY2IiwiRmFjaWxpdHlJZCI6IjE1IiwiUGhhcmFtY3lGYWNpbGl0eUlkIjoiNTUiLCJJU19QSEFSTUFDWV9DT05ORUNURUQiOiJUcnVlIiwiRG9jdG9ySWQiOiIxNDg1IiwiU0VTU0lPTklEIjoiMjE1ODUyMTAiLCJDbGluaWNJZCI6IjMiLCJyb2xlIjoiRE9DVE9SUyIsIm5iZiI6MTYwODM2NDU2OCwiZXhwIjoxNjA5MjI4NTY4LCJpYXQiOjE2MDgzNjQ1Njh9.YLbvq5nxPn8o9ZYkcbc5YAX7Jy23Mm0s33oRmE8GHDI",
|
||||||
|
|
||||||
|
search: ["lab"],
|
||||||
|
);
|
||||||
|
|
||||||
|
PostProcedureReqModel _postProcedureReqModel = PostProcedureReqModel();
|
||||||
|
|
||||||
|
Future getProcedure() async {
|
||||||
|
hasError = false;
|
||||||
|
_procedureList.clear();
|
||||||
|
await baseAppClient.post(GET_PROCEDURE_LIST,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_procedureList.add(GetProcedureModel.fromJson(response['ProcedureList']));
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: _getProcedureReqModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
Future postProcedure() async {
|
||||||
|
hasError = false;
|
||||||
|
_procedureList.clear();
|
||||||
|
await baseAppClient.post(POST_PROCEDURE_LIST,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_procedureList.add(GetProcedureModel.fromJson(response['ProcedureList']));
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: _postProcedureReqModel.toJson());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/Prescription_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/post_prescrition_req_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/service/prescription_service.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/locator.dart';
|
||||||
|
|
||||||
|
class PrescriptionViewModel extends BaseViewModel {
|
||||||
|
bool hasError = false;
|
||||||
|
PrescriptionService _prescriptionService = locator<PrescriptionService>();
|
||||||
|
|
||||||
|
List<PrescriptionModel> get prescriptionList =>
|
||||||
|
_prescriptionService.prescriptionList;
|
||||||
|
|
||||||
|
Future getPrescription() async {
|
||||||
|
hasError = false;
|
||||||
|
//_insuranceCardService.clearInsuranceCard();
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _prescriptionService.getPrescription();
|
||||||
|
if (_prescriptionService.hasError) {
|
||||||
|
error = _prescriptionService.error;
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future postPrescription() async {
|
||||||
|
hasError = false;
|
||||||
|
//_insuranceCardService.clearInsuranceCard();
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _prescriptionService.postPrescription();
|
||||||
|
if (_prescriptionService.hasError) {
|
||||||
|
error = _prescriptionService.error;
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/model/procedure/get_procedure_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/service/procedure_service.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/locator.dart';
|
||||||
|
|
||||||
|
class ProcedureViewModel extends BaseViewModel {
|
||||||
|
bool hasError = false;
|
||||||
|
ProcedureService _procedureService = locator<ProcedureService>();
|
||||||
|
List<GetProcedureModel> get procedureList => _procedureService.procedureList;
|
||||||
|
|
||||||
|
Future getProcedure() async {
|
||||||
|
hasError = false;
|
||||||
|
//_insuranceCardService.clearInsuranceCard();
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _procedureService.getProcedure();
|
||||||
|
if (_procedureService.hasError) {
|
||||||
|
error = _procedureService.error;
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,212 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/livecare/transfer_to_admin.dart';
|
||||||
|
import 'package:doctor_app_flutter/screens/prescription/prescription_warnings.dart';
|
||||||
|
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
|
||||||
|
void addPrescriptionForm(context) {
|
||||||
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final double spaceBetweenTextFileds = 12;
|
||||||
|
showModalBottomSheet(
|
||||||
|
isScrollControlled: true,
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext bc) {
|
||||||
|
return SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
height: 700,
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 12.0, vertical: 10.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
//mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
TranslationBase.of(context).medicines.toUpperCase(),
|
||||||
|
fontWeight: FontWeight.w900,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: spaceBetweenTextFileds,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
child: Form(
|
||||||
|
key: _formKey,
|
||||||
|
child: Column(
|
||||||
|
//mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText:
|
||||||
|
TranslationBase.of(context).searchMedicine,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.text,
|
||||||
|
inputFormatter: ONLY_LETTERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: spaceBetweenTextFileds,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).orderType,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).strength,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).route,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).frequency,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).doseTime,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).indication,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).fromDate,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: TranslationBase.of(context).duration,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText:
|
||||||
|
TranslationBase.of(context).instruction,
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: spaceBetweenTextFileds),
|
||||||
|
Container(
|
||||||
|
margin:
|
||||||
|
EdgeInsets.all(SizeConfig.widthMultiplier * 5),
|
||||||
|
child: Wrap(
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
AppButton(
|
||||||
|
title:
|
||||||
|
TranslationBase.of(context).addMedication,
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
prescriptionWarning(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -0,0 +1,405 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
||||||
|
import 'package:doctor_app_flutter/screens/prescription/add_prescription_form.dart';
|
||||||
|
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/patients/profile/profile_medical_info_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
|
||||||
|
class NewPrescriptionScreen extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_NewPrescriptionScreenState createState() => _NewPrescriptionScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _NewPrescriptionScreenState extends State<NewPrescriptionScreen> {
|
||||||
|
int testNum = 0;
|
||||||
|
PatiantInformtion patient;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
|
||||||
|
patient = routeArgs['patient'];
|
||||||
|
return BaseView<PrescriptionViewModel>(
|
||||||
|
onModelReady: (model) => model.getPrescription(),
|
||||||
|
builder: (BuildContext context, PrescriptionViewModel model,
|
||||||
|
Widget child) =>
|
||||||
|
AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
appBarTitle: TranslationBase.of(context).prescription,
|
||||||
|
body: NetworkBaseView(
|
||||||
|
baseViewModel: model,
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.all(8.0),
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
AvatarWidget(
|
||||||
|
Icon(
|
||||||
|
patient.genderDescription == "Male"
|
||||||
|
? DoctorApp.male
|
||||||
|
: DoctorApp.female_icon,
|
||||||
|
size: 70,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 20,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
patient.firstName + ' ' + patient.lastName,
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
if (model.prescriptionList.length > 0)
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
TranslationBase.of(context).fileNo,
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 20,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
patient.patientId.toString(),
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
height: 1.0,
|
||||||
|
thickness: 1.0,
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
if (model.prescriptionList.length != 0)
|
||||||
|
SizedBox(
|
||||||
|
height: model.prescriptionList[0].rowcount == 0
|
||||||
|
? 200.0
|
||||||
|
: 10.0),
|
||||||
|
//model.prescriptionList == null
|
||||||
|
if (model.prescriptionList.length != 0)
|
||||||
|
model.prescriptionList[0].rowcount == 0
|
||||||
|
? Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.stretch,
|
||||||
|
children: [
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
addPrescriptionForm(context);
|
||||||
|
//model.postPrescription();
|
||||||
|
},
|
||||||
|
child: CircleAvatar(
|
||||||
|
radius: 65,
|
||||||
|
backgroundColor: Color(0XFFB8382C),
|
||||||
|
child: CircleAvatar(
|
||||||
|
radius: 60,
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
child: Icon(
|
||||||
|
Icons.add,
|
||||||
|
color: Colors.black,
|
||||||
|
size: 45.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 15.0,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
TranslationBase.of(context)
|
||||||
|
.noPrescriptionListed,
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.w900,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
TranslationBase.of(context).addNow,
|
||||||
|
color: Color(0XFFB8382C),
|
||||||
|
fontWeight: FontWeight.w900,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
: Padding(
|
||||||
|
padding: EdgeInsets.all(12.0),
|
||||||
|
child: NetworkBaseView(
|
||||||
|
baseViewModel: model,
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
InkWell(
|
||||||
|
child: Container(
|
||||||
|
height: 50.0,
|
||||||
|
width: 450.0,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(
|
||||||
|
color: Colors.grey),
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.all(8.0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment
|
||||||
|
.spaceBetween,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
' Add more medication',
|
||||||
|
fontWeight: FontWeight.w100,
|
||||||
|
fontSize: 12.5,
|
||||||
|
),
|
||||||
|
Icon(
|
||||||
|
Icons.add,
|
||||||
|
color: Color(0XFFB8382C),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
addPrescriptionForm(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 15.0,
|
||||||
|
),
|
||||||
|
...List.generate(
|
||||||
|
model.prescriptionList[0].rowcount,
|
||||||
|
(index) => Container(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment
|
||||||
|
.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
height:
|
||||||
|
MediaQuery.of(context)
|
||||||
|
.size
|
||||||
|
.height *
|
||||||
|
0.2,
|
||||||
|
width:
|
||||||
|
MediaQuery.of(context)
|
||||||
|
.size
|
||||||
|
.width *
|
||||||
|
0.09,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'8\nDEC',
|
||||||
|
color: Colors.green,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
height:
|
||||||
|
MediaQuery.of(context)
|
||||||
|
.size
|
||||||
|
.height *
|
||||||
|
0.24,
|
||||||
|
width:
|
||||||
|
MediaQuery.of(context)
|
||||||
|
.size
|
||||||
|
.width *
|
||||||
|
0.81,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Start Date:',
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w900,
|
||||||
|
fontSize: 15.0,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
model
|
||||||
|
.prescriptionList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.startDate,
|
||||||
|
fontSize: 11.0,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 6.0,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
'Order Type:',
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w900,
|
||||||
|
fontSize: 15.0,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
model
|
||||||
|
.prescriptionList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.orderTypeDescription,
|
||||||
|
fontSize: 13.0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 2.5,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
child: Expanded(
|
||||||
|
child:
|
||||||
|
AppText(
|
||||||
|
model
|
||||||
|
.prescriptionList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.medicationName,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: AppText(
|
||||||
|
model
|
||||||
|
.prescriptionList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.doseDetail,
|
||||||
|
fontSize:
|
||||||
|
13.0,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 3.0,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Indication: ',
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w900,
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: AppText(
|
||||||
|
model
|
||||||
|
.prescriptionList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.indication,
|
||||||
|
fontSize:
|
||||||
|
12.9),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 15.0,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
model
|
||||||
|
.prescriptionList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.doctorName,
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w900,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(model
|
||||||
|
.prescriptionList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.remarks),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 15.0,
|
||||||
|
),
|
||||||
|
|
||||||
|
Divider(
|
||||||
|
height: 0,
|
||||||
|
thickness: 1.0,
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
// SizedBox(
|
||||||
|
// height: 40,
|
||||||
|
// ),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,168 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
|
||||||
|
void prescriptionWarning(context) {
|
||||||
|
showModalBottomSheet(
|
||||||
|
context: context,
|
||||||
|
isScrollControlled: true,
|
||||||
|
builder: (BuildContext bc) {
|
||||||
|
return SingleChildScrollView(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(12.0),
|
||||||
|
child: Container(
|
||||||
|
height: 600,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
...List.generate(
|
||||||
|
5,
|
||||||
|
(index) => Container(
|
||||||
|
child: ExpansionTile(
|
||||||
|
title: AppText('Prescription warning and alerts(0)'),
|
||||||
|
children: [
|
||||||
|
Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'DOSESCREENINGRESULTFORETCETC',
|
||||||
|
color: Color(0XFFB8382C),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.0,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border:
|
||||||
|
Border.all(width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: 'Remarks',
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 95.0,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 2),
|
||||||
|
child: Wrap(
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
AppButton(
|
||||||
|
title: 'CONTINUE',
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
authorizationForm(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 2),
|
||||||
|
child: Wrap(
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
AppButton(
|
||||||
|
color: Colors.white,
|
||||||
|
title: 'remove',
|
||||||
|
fontColor: Colors.red,
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
prescriptionWarning(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void authorizationForm(context) {
|
||||||
|
showModalBottomSheet(
|
||||||
|
context: context,
|
||||||
|
isScrollControlled: true,
|
||||||
|
builder: (BuildContext bc) {
|
||||||
|
return Container(
|
||||||
|
height: 500,
|
||||||
|
child: Form(
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Prescription authorization'.toUpperCase(),
|
||||||
|
fontWeight: FontWeight.w900,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 30.0,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: 'Auth ID',
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.number,
|
||||||
|
inputFormatter: ONLY_NUMBERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12.0,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: 'Password',
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.text,
|
||||||
|
inputFormatter: ONLY_LETTERS,
|
||||||
|
obscureText: true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 190.0,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 2),
|
||||||
|
child: Wrap(
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
AppButton(
|
||||||
|
title: 'CONTINUE',
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
authorizationForm(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -0,0 +1,440 @@
|
|||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/screens/base/base_view.dart';
|
||||||
|
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
|
||||||
|
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
|
||||||
|
class ProcedureScreen extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_ProcedureScreenState createState() => _ProcedureScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ProcedureScreenState extends State<ProcedureScreen> {
|
||||||
|
int testNum = 1;
|
||||||
|
PatiantInformtion patient;
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
|
||||||
|
patient = routeArgs['patient'];
|
||||||
|
return BaseView<ProcedureViewModel>(
|
||||||
|
onModelReady: (model) => model.getProcedure(),
|
||||||
|
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
|
||||||
|
AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
appBarTitle: 'ORDER PROCEDURE',
|
||||||
|
body: NetworkBaseView(
|
||||||
|
baseViewModel: model,
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.all(12.0),
|
||||||
|
child: Row(
|
||||||
|
children: <Widget>[
|
||||||
|
AvatarWidget(
|
||||||
|
Icon(
|
||||||
|
patient.genderDescription == "Male"
|
||||||
|
? DoctorApp.male
|
||||||
|
: DoctorApp.female_icon,
|
||||||
|
size: 70,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 20,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
patient.firstName + ' ' + patient.lastName,
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
TranslationBase.of(context).fileNo,
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 20,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
patient.patientId.toString(),
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Divider(
|
||||||
|
height: 1.0,
|
||||||
|
thickness: 1.0,
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
if (model.procedureList.length != 0)
|
||||||
|
SizedBox(
|
||||||
|
height: model.procedureList[0].rowcount == 0
|
||||||
|
? 200.0
|
||||||
|
: 10.0),
|
||||||
|
//model.prescriptionList == null
|
||||||
|
if (model.procedureList.length != 0)
|
||||||
|
model.procedureList[0].rowcount == 0
|
||||||
|
? Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.stretch,
|
||||||
|
children: [
|
||||||
|
InkWell(
|
||||||
|
onTap: () {
|
||||||
|
addSelectedProcedure(context);
|
||||||
|
//model.postPrescription();
|
||||||
|
},
|
||||||
|
child: CircleAvatar(
|
||||||
|
radius: 65,
|
||||||
|
backgroundColor: Color(0XFFB8382C),
|
||||||
|
child: CircleAvatar(
|
||||||
|
radius: 60,
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
child: Icon(
|
||||||
|
Icons.add,
|
||||||
|
color: Colors.black,
|
||||||
|
size: 45.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 15.0,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'NO ORDER FOR PROCEDURE LISTED',
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.w900,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
TranslationBase.of(context).addNow,
|
||||||
|
color: Color(0XFFB8382C),
|
||||||
|
fontWeight: FontWeight.w900,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
: Padding(
|
||||||
|
padding: EdgeInsets.all(16.0),
|
||||||
|
child: NetworkBaseView(
|
||||||
|
baseViewModel: model,
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
InkWell(
|
||||||
|
child: Container(
|
||||||
|
height: 50.0,
|
||||||
|
width: 450.0,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(
|
||||||
|
color: Colors.grey),
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.all(8.0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment
|
||||||
|
.spaceBetween,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
' Add more procedure',
|
||||||
|
fontWeight: FontWeight.w100,
|
||||||
|
fontSize: 12.5,
|
||||||
|
),
|
||||||
|
Icon(
|
||||||
|
Icons.add,
|
||||||
|
color: Color(0XFFB8382C),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
addSelectedProcedure(context);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
// Container(
|
||||||
|
// decoration: BoxDecoration(
|
||||||
|
// borderRadius: BorderRadius.all(
|
||||||
|
// Radius.circular(6.0)),
|
||||||
|
// border: Border.all(
|
||||||
|
// width: 1.0,
|
||||||
|
// color: HexColor("#CCCCCC"))),
|
||||||
|
// child: AppTextFormField(
|
||||||
|
// labelText: 'Add more procedure',
|
||||||
|
// borderColor: Colors.white,
|
||||||
|
// //suffixIcon: Icons.search,
|
||||||
|
//
|
||||||
|
// //textInputType: TextInputType.number,
|
||||||
|
// inputFormatter: ONLY_NUMBERS,
|
||||||
|
// onTap: () {
|
||||||
|
// addSelectedProcedure(context);
|
||||||
|
// },
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
SizedBox(
|
||||||
|
height: 35.0,
|
||||||
|
),
|
||||||
|
...List.generate(
|
||||||
|
model.procedureList[0].rowcount,
|
||||||
|
(index) => Container(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment:
|
||||||
|
MainAxisAlignment
|
||||||
|
.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
height: 120.0,
|
||||||
|
width: 45.0,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'8\nDEC',
|
||||||
|
color: Colors.green,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
height: 120,
|
||||||
|
width: 325.0,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Code #: ',
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w900,
|
||||||
|
fontSize: 15.0,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
model
|
||||||
|
.procedureList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.procedureId
|
||||||
|
.toString(),
|
||||||
|
fontSize: 13.0,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 12.0,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
'Order Type: ',
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w900,
|
||||||
|
fontSize: 15.0,
|
||||||
|
),
|
||||||
|
AppText(
|
||||||
|
'Urgent',
|
||||||
|
fontSize: 13.0,
|
||||||
|
color:
|
||||||
|
Colors.red,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
child: Expanded(
|
||||||
|
child:
|
||||||
|
AppText(
|
||||||
|
model
|
||||||
|
.procedureList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.procedureName,
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w800,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Price: ',
|
||||||
|
fontWeight:
|
||||||
|
FontWeight
|
||||||
|
.w900,
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: AppText(
|
||||||
|
model
|
||||||
|
.procedureList[
|
||||||
|
0]
|
||||||
|
.entityList[
|
||||||
|
index]
|
||||||
|
.price
|
||||||
|
.toString(),
|
||||||
|
fontSize:
|
||||||
|
13.0),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.0,
|
||||||
|
),
|
||||||
|
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Some short remark about the procedure',
|
||||||
|
fontSize: 13.5,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.0,
|
||||||
|
),
|
||||||
|
|
||||||
|
Divider(
|
||||||
|
height: 5.0,
|
||||||
|
thickness: 1.0,
|
||||||
|
color: Colors.grey,
|
||||||
|
)
|
||||||
|
// SizedBox(
|
||||||
|
// height: 40,
|
||||||
|
// ),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: 30,
|
||||||
|
height: 120,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Icon(Icons.edit)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void addSelectedProcedure(context) {
|
||||||
|
showModalBottomSheet(
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext bc) {
|
||||||
|
return SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
height: 490,
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.all(12.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
AppText(
|
||||||
|
'Select Procedure'.toUpperCase(),
|
||||||
|
fontWeight: FontWeight.w900,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 9.0,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.all(Radius.circular(6.0)),
|
||||||
|
border: Border.all(
|
||||||
|
width: 1.0, color: HexColor("#CCCCCC"))),
|
||||||
|
child: AppTextFormField(
|
||||||
|
labelText: 'Add Delected Procedures'.toUpperCase(),
|
||||||
|
borderColor: Colors.white,
|
||||||
|
textInputType: TextInputType.text,
|
||||||
|
inputFormatter: ONLY_LETTERS,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 280.0,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
|
||||||
|
child: Wrap(
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
children: <Widget>[
|
||||||
|
AppButton(
|
||||||
|
title: TranslationBase.of(context).addMedication,
|
||||||
|
// onPressed: () {
|
||||||
|
// Navigator.pop(context);
|
||||||
|
// prescriptionWarning(context);
|
||||||
|
// },
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue