Merge branch 'refactor' into 'development'
Refactor See merge request Cloud_Solution/doctor_app_flutter!180pull/182/head
commit
6057e6a266
@ -0,0 +1,412 @@
|
|||||||
|
import 'package:doctor_app_flutter/client/base_app_client.dart';
|
||||||
|
import 'package:doctor_app_flutter/config/config.dart';
|
||||||
|
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/service/base/base_service.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/doctor/request_schedule.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/get_clinic_by_project_id_request.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/get_doctor_by_clinic_id_request.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/get_list_stp_referral_frequency_request.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/lab_orders/lab_orders_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result_req_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patient_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report_for_in_patient.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription/prescription_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/radiology/radiology_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/refer_to_doctor_request.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/vital_sign/vital_sign_res_model.dart';
|
||||||
|
|
||||||
|
class PatientService extends BaseService {
|
||||||
|
List<VitalSignResModel> _patientVitalSignList = [];
|
||||||
|
List<VitalSignResModel> patientVitalSignOrderdSubList = [];
|
||||||
|
|
||||||
|
List<VitalSignResModel> get patientVitalSignList => _patientVitalSignList;
|
||||||
|
|
||||||
|
List<LabOrdersResModel> _patientLabResultOrdersList = [];
|
||||||
|
|
||||||
|
List<LabOrdersResModel> get patientLabResultOrdersList =>
|
||||||
|
_patientLabResultOrdersList;
|
||||||
|
|
||||||
|
List<PrescriptionResModel> get patientPrescriptionsList =>
|
||||||
|
_patientPrescriptionsList;
|
||||||
|
List<PrescriptionResModel> _patientPrescriptionsList = [];
|
||||||
|
|
||||||
|
List<PrescriptionReportForInPatient> get prescriptionReportForInPatientList =>
|
||||||
|
_prescriptionReportForInPatientList;
|
||||||
|
List<PrescriptionReportForInPatient> _prescriptionReportForInPatientList = [];
|
||||||
|
|
||||||
|
List<RadiologyResModel> _patientRadiologyList = [];
|
||||||
|
|
||||||
|
List<RadiologyResModel> get patientRadiologyList => _patientRadiologyList;
|
||||||
|
|
||||||
|
List<PrescriptionReport> _prescriptionReport = [];
|
||||||
|
|
||||||
|
List<PrescriptionReport> get prescriptionReport => _prescriptionReport;
|
||||||
|
|
||||||
|
List<LabResult> _labResultList = [];
|
||||||
|
|
||||||
|
List<LabResult> get labResultList => _labResultList;
|
||||||
|
|
||||||
|
// TODO: replace var with model
|
||||||
|
var _patientProgressNoteList = [];
|
||||||
|
|
||||||
|
get patientProgressNoteList => _patientProgressNoteList;
|
||||||
|
|
||||||
|
// TODO: replace var with model
|
||||||
|
var _insuranceApporvalsList = [];
|
||||||
|
|
||||||
|
get insuranceApporvalsList => _insuranceApporvalsList;
|
||||||
|
|
||||||
|
// TODO: replace var with model
|
||||||
|
var _doctorsList = [];
|
||||||
|
|
||||||
|
get doctorsList => _doctorsList;
|
||||||
|
|
||||||
|
// TODO: replace var with model
|
||||||
|
var _clinicsList = [];
|
||||||
|
|
||||||
|
get clinicsList => _clinicsList;
|
||||||
|
|
||||||
|
// TODO: replace var with model
|
||||||
|
var _referalFrequancyList = [];
|
||||||
|
|
||||||
|
get referalFrequancyList => _referalFrequancyList;
|
||||||
|
|
||||||
|
DoctorsByClinicIdRequest _doctorsByClinicIdRequest =
|
||||||
|
DoctorsByClinicIdRequest();
|
||||||
|
STPReferralFrequencyRequest _referralFrequencyRequest =
|
||||||
|
STPReferralFrequencyRequest();
|
||||||
|
ClinicByProjectIdRequest _clinicByProjectIdRequest =
|
||||||
|
ClinicByProjectIdRequest();
|
||||||
|
ReferToDoctorRequest _referToDoctorRequest;
|
||||||
|
|
||||||
|
RequestSchedule _requestSchedule = RequestSchedule();
|
||||||
|
|
||||||
|
Future<dynamic> getPatientList(PatientModel patient, patientType) async {
|
||||||
|
hasError = false;
|
||||||
|
int val = int.parse(patientType);
|
||||||
|
|
||||||
|
dynamic localRes;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_PATIENT + SERVICES_PATIANT[val],
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
localRes = response;
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: {
|
||||||
|
"ProjectID": patient.ProjectID,
|
||||||
|
"ClinicID": patient.ClinicID,
|
||||||
|
"DoctorID": patient.DoctorID,
|
||||||
|
"FirstName": patient.FirstName,
|
||||||
|
"MiddleName": patient.MiddleName,
|
||||||
|
"LastName": patient.LastName,
|
||||||
|
"PatientMobileNumber": patient.PatientMobileNumber,
|
||||||
|
"PatientIdentificationID": patient.PatientIdentificationID,
|
||||||
|
"PatientID": patient.PatientID,
|
||||||
|
"From": patient.From,
|
||||||
|
"To": patient.To,
|
||||||
|
"LanguageID": patient.LanguageID,
|
||||||
|
"stamp": patient.stamp,
|
||||||
|
"IPAdress": patient.IPAdress,
|
||||||
|
"VersionID": patient.VersionID,
|
||||||
|
"Channel": patient.Channel,
|
||||||
|
"TokenID": patient.TokenID,
|
||||||
|
"SessionID": patient.SessionID,
|
||||||
|
"IsLoginForDoctorApp": patient.IsLoginForDoctorApp,
|
||||||
|
"PatientOutSA": patient.PatientOutSA
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
return Future.value(localRes);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientVitalSign(patient) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_PATIENT_VITAL_SIGN,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_patientVitalSignList = [];
|
||||||
|
response['List_DoctorPatientVitalSign'].forEach((v) {
|
||||||
|
_patientVitalSignList.add(new VitalSignResModel.fromJson(v));
|
||||||
|
});
|
||||||
|
|
||||||
|
if (_patientVitalSignList.length > 0) {
|
||||||
|
List<VitalSignResModel> patientVitalSignOrderdSubListTemp = [];
|
||||||
|
patientVitalSignOrderdSubListTemp = _patientVitalSignList;
|
||||||
|
patientVitalSignOrderdSubListTemp
|
||||||
|
.sort((VitalSignResModel a, VitalSignResModel b) {
|
||||||
|
return b.vitalSignDate.microsecondsSinceEpoch -
|
||||||
|
a.vitalSignDate.microsecondsSinceEpoch;
|
||||||
|
});
|
||||||
|
patientVitalSignOrderdSubList.clear();
|
||||||
|
int length = patientVitalSignOrderdSubListTemp.length >= 20
|
||||||
|
? 20
|
||||||
|
: patientVitalSignOrderdSubListTemp.length;
|
||||||
|
for (int x = 0; x < length; x++) {
|
||||||
|
patientVitalSignOrderdSubList
|
||||||
|
.add(patientVitalSignOrderdSubListTemp[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: patient,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getLabResultOrders(patient) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_PATIENT_LAB_OREDERS,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_patientLabResultOrdersList = [];
|
||||||
|
response['List_GetLabOreders'].forEach((v) {
|
||||||
|
_patientLabResultOrdersList.add(new LabOrdersResModel.fromJson(v));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: patient,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getOutPatientPrescriptions(patient) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_PRESCRIPTION,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_patientPrescriptionsList = [];
|
||||||
|
response['PatientPrescriptionList'].forEach((v) {
|
||||||
|
_patientPrescriptionsList.add(new PrescriptionResModel.fromJson(v));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: patient,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getInPatientPrescriptions(patient) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_PRESCRIPTION_REPORT_FOR_IN_PATIENT,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_prescriptionReportForInPatientList = [];
|
||||||
|
response['List_PrescriptionReportForInPatient'].forEach((v) {
|
||||||
|
prescriptionReportForInPatientList
|
||||||
|
.add(PrescriptionReportForInPatient.fromJson(v));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: patient,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPrescriptionReport(prescriptionReqModel) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_PRESCRIPTION_REPORT,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_prescriptionReport = [];
|
||||||
|
response['ListPRM'].forEach((v) {
|
||||||
|
_prescriptionReport.add(PrescriptionReport.fromJson(v));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: prescriptionReqModel,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientRadiology(patient) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_RADIOLOGY,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_patientRadiologyList = [];
|
||||||
|
response['List_GetRadOreders'].forEach((v) {
|
||||||
|
_patientRadiologyList.add(new RadiologyResModel.fromJson(v));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: patient,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getLabResult(LabOrdersResModel labOrdersResModel) async {
|
||||||
|
hasError = false;
|
||||||
|
|
||||||
|
RequestLabResult requestLabResult = RequestLabResult();
|
||||||
|
requestLabResult.sessionID = labOrdersResModel.setupID;
|
||||||
|
requestLabResult.orderNo = labOrdersResModel.orderNo;
|
||||||
|
requestLabResult.invoiceNo = labOrdersResModel.invoiceNo;
|
||||||
|
requestLabResult.patientTypeID = labOrdersResModel.patientType;
|
||||||
|
await baseAppClient.post(
|
||||||
|
GET_PATIENT_LAB_RESULTS,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_labResultList = [];
|
||||||
|
response['List_GetLabNormal'].forEach((v) {
|
||||||
|
_labResultList.add(new LabResult.fromJson(v));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: requestLabResult.toJson(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientInsuranceApprovals(patient) async {
|
||||||
|
hasError = false;
|
||||||
|
|
||||||
|
await baseAppClient.post(
|
||||||
|
PATIENT_INSURANCE_APPROVALS_URL,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_insuranceApporvalsList = [];
|
||||||
|
_insuranceApporvalsList = response['List_ApprovalMain_InPatient'];
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: patient,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientProgressNote(patient) async {
|
||||||
|
hasError = false;
|
||||||
|
|
||||||
|
await baseAppClient.post(
|
||||||
|
PATIENT_PROGRESS_NOTE_URL,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_patientProgressNoteList = [];
|
||||||
|
_patientProgressNoteList = response['List_GetPregressNoteForInPatient'];
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: patient,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Future getClinicsList() async {
|
||||||
|
hasError = false;
|
||||||
|
|
||||||
|
await baseAppClient.post(
|
||||||
|
PATIENT_GET_CLINIC_BY_PROJECT_URL,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_clinicsList = [];
|
||||||
|
_clinicsList = response['List_Clinic_All'];
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: _clinicByProjectIdRequest.toJson(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Future getReferralFrequancyList() async {
|
||||||
|
hasError = false;
|
||||||
|
|
||||||
|
await baseAppClient.post(
|
||||||
|
PATIENT_GET_LIST_REFERAL_URL,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_referalFrequancyList = [];
|
||||||
|
_referalFrequancyList = response['list_STPReferralFrequency'];
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: _referralFrequencyRequest.toJson(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getDoctorsList(String clinicId) async {
|
||||||
|
hasError = false;
|
||||||
|
_doctorsByClinicIdRequest.clinicID = clinicId;
|
||||||
|
await baseAppClient.post(
|
||||||
|
PATIENT_GET_DOCTOR_BY_CLINIC_URL,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
_doctorsList = [];
|
||||||
|
_doctorsList = response['List_Doctors_All'];
|
||||||
|
},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: _doctorsByClinicIdRequest.toJson(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO send the total model insted of each parameter
|
||||||
|
Future referToDoctor({String selectedDoctorID,
|
||||||
|
String selectedClinicID,
|
||||||
|
int admissionNo,
|
||||||
|
String extension,
|
||||||
|
String priority,
|
||||||
|
String frequency,
|
||||||
|
String referringDoctorRemarks,
|
||||||
|
int patientID,
|
||||||
|
int patientTypeID,
|
||||||
|
String roomID,
|
||||||
|
int projectID}) async {
|
||||||
|
hasError = false;
|
||||||
|
// TODO Change it to use it when we implement authentication user
|
||||||
|
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
||||||
|
DoctorProfileModel doctorProfile = new DoctorProfileModel.fromJson(profile);
|
||||||
|
int doctorID = doctorProfile.doctorID;
|
||||||
|
int clinicId = doctorProfile.clinicID;
|
||||||
|
_referToDoctorRequest = ReferToDoctorRequest(
|
||||||
|
projectID: projectID,
|
||||||
|
admissionNo: admissionNo,
|
||||||
|
roomID: roomID,
|
||||||
|
referralClinic: selectedClinicID.toString(),
|
||||||
|
referralDoctor: selectedDoctorID.toString(),
|
||||||
|
createdBy: doctorID,
|
||||||
|
editedBy: doctorID,
|
||||||
|
patientID: patientID,
|
||||||
|
patientTypeID: patientTypeID,
|
||||||
|
referringClinic: clinicId,
|
||||||
|
referringDoctor: doctorID,
|
||||||
|
referringDoctorRemarks: referringDoctorRemarks,
|
||||||
|
priority: priority,
|
||||||
|
frequency: frequency,
|
||||||
|
extension: extension,
|
||||||
|
);
|
||||||
|
await baseAppClient.post(
|
||||||
|
PATIENT_PROGRESS_NOTE_URL,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {},
|
||||||
|
onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
},
|
||||||
|
body: _referToDoctorRequest.toJson(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,244 @@
|
|||||||
|
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
||||||
|
import 'package:doctor_app_flutter/core/service/patient_service.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/lab_orders/lab_orders_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/lab_result/lab_result.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/patient_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription/prescription_report_for_in_patient.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/prescription/prescription_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/radiology/radiology_res_model.dart';
|
||||||
|
import 'package:doctor_app_flutter/models/patient/vital_sign/vital_sign_res_model.dart';
|
||||||
|
|
||||||
|
import '../../locator.dart';
|
||||||
|
import 'base_view_model.dart';
|
||||||
|
|
||||||
|
class PatientViewModel extends BaseViewModel {
|
||||||
|
PatientService _patientService = locator<PatientService>();
|
||||||
|
|
||||||
|
List<VitalSignResModel> get patientVitalSignList =>
|
||||||
|
_patientService.patientVitalSignList;
|
||||||
|
|
||||||
|
List<VitalSignResModel> get patientVitalSignOrderdSubList =>
|
||||||
|
_patientService.patientVitalSignOrderdSubList;
|
||||||
|
|
||||||
|
List<LabOrdersResModel> get patientLabResultOrdersList =>
|
||||||
|
_patientService.patientLabResultOrdersList;
|
||||||
|
|
||||||
|
List<PrescriptionResModel> get patientPrescriptionsList =>
|
||||||
|
_patientService.patientPrescriptionsList;
|
||||||
|
|
||||||
|
List<PrescriptionReportForInPatient> get prescriptionReportForInPatientList =>
|
||||||
|
_patientService.prescriptionReportForInPatientList;
|
||||||
|
|
||||||
|
List<PrescriptionReport> get prescriptionReport =>
|
||||||
|
_patientService.prescriptionReport;
|
||||||
|
|
||||||
|
List<RadiologyResModel> get patientRadiologyList =>
|
||||||
|
_patientService.patientRadiologyList;
|
||||||
|
|
||||||
|
List<LabResult> get labResultList => _patientService.labResultList;
|
||||||
|
|
||||||
|
get insuranceApporvalsList => _patientService.insuranceApporvalsList;
|
||||||
|
|
||||||
|
get patientProgressNoteList => _patientService.patientProgressNoteList;
|
||||||
|
|
||||||
|
get clinicsList => _patientService.clinicsList;
|
||||||
|
get doctorsList => _patientService.doctorsList;
|
||||||
|
|
||||||
|
get referalFrequancyList => _patientService.referalFrequancyList;
|
||||||
|
Future getPatientList(PatientModel patient, patientType,
|
||||||
|
{bool isBusyLocal = false}) async {
|
||||||
|
if(isBusyLocal) {
|
||||||
|
setState(ViewState.BusyLocal);
|
||||||
|
} else {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
}
|
||||||
|
return _patientService.getPatientList(patient, patientType);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
if(isBusyLocal) {
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else {
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} } else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientVitalSign(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getPatientVitalSign(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getLabResultOrders(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getLabResultOrders(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getOutPatientPrescriptions(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getOutPatientPrescriptions(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getInPatientPrescriptions(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getInPatientPrescriptions(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPrescriptionReport(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getPrescriptionReport(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientRadiology(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getPatientRadiology(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getLabResult(LabOrdersResModel labOrdersResModel) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getLabResult(labOrdersResModel);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientInsuranceApprovals(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getPatientInsuranceApprovals(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getPatientProgressNote(patient) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getPatientProgressNote(patient);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getClinicsList() async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getClinicsList();
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
await getReferralFrequancyList();
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Future getDoctorsList(String clinicId) async {
|
||||||
|
setState(ViewState.BusyLocal);
|
||||||
|
await _patientService.getDoctorsList(clinicId);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
await getReferralFrequancyList();
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List getDoctorNameList() {
|
||||||
|
var doctorNamelist =
|
||||||
|
_patientService.doctorsList.map((value) => value['DoctorName'].toString()).toList();
|
||||||
|
return doctorNamelist;
|
||||||
|
}
|
||||||
|
|
||||||
|
List getClinicNameList() {
|
||||||
|
var clinicsNameslist = _patientService.clinicsList
|
||||||
|
.map((value) => value['ClinicDescription'].toString())
|
||||||
|
.toList();
|
||||||
|
return clinicsNameslist;
|
||||||
|
}
|
||||||
|
Future getReferralFrequancyList() async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _patientService.getReferralFrequancyList();
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
|
||||||
|
List getReferralNamesList() {
|
||||||
|
var referralNamesList = _patientService.referalFrequancyList
|
||||||
|
.map((value) => value['Description'].toString())
|
||||||
|
.toList();
|
||||||
|
return referralNamesList;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future referToDoctor(
|
||||||
|
{String selectedDoctorID,
|
||||||
|
String selectedClinicID,
|
||||||
|
int admissionNo,
|
||||||
|
String extension,
|
||||||
|
String priority,
|
||||||
|
String frequency,
|
||||||
|
String referringDoctorRemarks,
|
||||||
|
int patientID,
|
||||||
|
int patientTypeID,
|
||||||
|
String roomID,
|
||||||
|
int projectID}) async {
|
||||||
|
setState(ViewState.BusyLocal);
|
||||||
|
await _patientService.referToDoctor(
|
||||||
|
selectedClinicID: selectedClinicID,
|
||||||
|
selectedDoctorID: selectedDoctorID,
|
||||||
|
admissionNo: admissionNo,
|
||||||
|
extension: extension,
|
||||||
|
priority: priority,
|
||||||
|
frequency: frequency,
|
||||||
|
referringDoctorRemarks: referringDoctorRemarks,
|
||||||
|
patientID: patientID,
|
||||||
|
patientTypeID: patientTypeID,
|
||||||
|
roomID: roomID,
|
||||||
|
projectID: projectID);
|
||||||
|
if (_patientService.hasError) {
|
||||||
|
error = _patientService.error;
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
@ -1,154 +0,0 @@
|
|||||||
import 'package:doctor_app_flutter/models/patient/vital_sign/vital_sign_req_model.dart';
|
|
||||||
import 'package:doctor_app_flutter/routes.dart';
|
|
||||||
import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
|
|
||||||
import '../../../../config/shared_pref_kay.dart';
|
|
||||||
import '../../../../config/size_config.dart';
|
|
||||||
import '../../../../models/patient/patiant_info_model.dart';
|
|
||||||
import '../../../../providers/patients_provider.dart';
|
|
||||||
import '../../../../util/dr_app_shared_pref.dart';
|
|
||||||
import '../../../../widgets/shared/app_scaffold_widget.dart';
|
|
||||||
import '../../../../widgets/shared/app_texts_widget.dart';
|
|
||||||
import '../../../../widgets/shared/card_with_bg_widget.dart';
|
|
||||||
import '../../../../widgets/shared/dr_app_circular_progress_Indeicator.dart';
|
|
||||||
import '../../../../widgets/shared/profile_image_widget.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);
|
|
||||||
String type = await sharedPref.getString(SLECTED_PATIENT_TYPE);
|
|
||||||
int inOutpatientType = 1;
|
|
||||||
if (type == '0') {
|
|
||||||
inOutpatientType = 2;
|
|
||||||
}
|
|
||||||
print(type);
|
|
||||||
VitalSignReqModel vitalSignReqModel = VitalSignReqModel(
|
|
||||||
patientID: patient.patientId,
|
|
||||||
projectID: patient.projectId,
|
|
||||||
tokenID: token,
|
|
||||||
patientTypeID: patient.patientType,
|
|
||||||
inOutpatientType: inOutpatientType,
|
|
||||||
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",
|
|
||||||
body: patientsProv.isLoading
|
|
||||||
? DrAppCircularProgressIndeicator()
|
|
||||||
: patientsProv.isError
|
|
||||||
? DrAppEmbeddedError(error: patientsProv.error)
|
|
||||||
: patientsProv.patientVitalSignList.length == 0
|
|
||||||
? DrAppEmbeddedError(error: 'You don\'t have any Vital Sign')
|
|
||||||
: 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>[
|
|
||||||
ProfileImageWidget(
|
|
||||||
url: patientsProv
|
|
||||||
.patientVitalSignList[index]
|
|
||||||
.doctorImageURL),
|
|
||||||
Expanded(
|
|
||||||
child: 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,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 8,
|
|
||||||
),
|
|
||||||
AppText(
|
|
||||||
' ${patientsProv.patientVitalSignList[index].clinicName}',
|
|
||||||
fontSize: 2 *
|
|
||||||
SizeConfig.textMultiplier,
|
|
||||||
color: Theme.of(context)
|
|
||||||
.primaryColor,
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 8,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context)
|
|
||||||
.pushNamed(VITAL_SIGN_DETAILS, arguments: {
|
|
||||||
'vitalSing':
|
|
||||||
patientsProv.patientVitalSignList[index]
|
|
||||||
});
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue