first step from patient provider
parent
664d2b5c2b
commit
6ab73916eb
@ -0,0 +1,256 @@
|
||||
import 'package:doctor_app_flutter/config/config.dart';
|
||||
import 'package:doctor_app_flutter/core/service/base/base_service.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/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 = [];
|
||||
// TODO: replace var with model
|
||||
var clinicsList = [];
|
||||
// TODO: replace var with model
|
||||
var referalFrequancyList = [];
|
||||
|
||||
DoctorsByClinicIdRequest _doctorsByClinicIdRequest =
|
||||
DoctorsByClinicIdRequest();
|
||||
STPReferralFrequencyRequest _referralFrequencyRequest =
|
||||
STPReferralFrequencyRequest();
|
||||
ClinicByProjectIdRequest _clinicByProjectIdRequest =
|
||||
ClinicByProjectIdRequest();
|
||||
ReferToDoctorRequest _referToDoctorRequest;
|
||||
|
||||
RequestSchedule _requestSchedule = RequestSchedule();
|
||||
|
||||
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,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,129 @@
|
||||
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/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;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -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