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