|
|
|
@ -1,3 +1,4 @@
|
|
|
|
|
|
|
|
import 'package:doctor_app_flutter/config/config.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/enum/filter_type.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/enum/filter_type.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/enum/view_state.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/enum/view_state.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/labs/lab_order_result.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/labs/lab_order_result.dart';
|
|
|
|
@ -6,7 +7,8 @@ import 'package:doctor_app_flutter/core/model/labs/patient_lab_orders.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/labs/patient_lab_special_result.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/labs/patient_lab_special_result.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/ControlsModel.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/ControlsModel.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart' as cpe;
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart'
|
|
|
|
|
|
|
|
as cpe;
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_model.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_model.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/post_procedure_req_model.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart';
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart';
|
|
|
|
@ -70,9 +72,16 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
List<ProcedureTempleteDetailsModel> get procedureTemplateDetails =>
|
|
|
|
List<ProcedureTempleteDetailsModel> get procedureTemplateDetails =>
|
|
|
|
_procedureService.templateDetailsList;
|
|
|
|
_procedureService.templateDetailsList;
|
|
|
|
|
|
|
|
|
|
|
|
Future getProcedure({int mrn, String patientType, int appointmentNo}) async {
|
|
|
|
Future getProcedure(
|
|
|
|
|
|
|
|
{int mrn,
|
|
|
|
|
|
|
|
String patientType,
|
|
|
|
|
|
|
|
int appointmentNo,
|
|
|
|
|
|
|
|
bool isLocalBusy = false}) async {
|
|
|
|
hasError = false;
|
|
|
|
hasError = false;
|
|
|
|
await getDoctorProfile();
|
|
|
|
await getDoctorProfile();
|
|
|
|
|
|
|
|
if (isLocalBusy)
|
|
|
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
|
|
|
else
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
await _procedureService.getProcedure(
|
|
|
|
await _procedureService.getProcedure(
|
|
|
|
mrn: mrn, appointmentNo: appointmentNo);
|
|
|
|
mrn: mrn, appointmentNo: appointmentNo);
|
|
|
|
@ -87,9 +96,15 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future getProcedureCategory(
|
|
|
|
Future getProcedureCategory(
|
|
|
|
{String categoryName, String categoryID, patientId}) async {
|
|
|
|
{String categoryName,
|
|
|
|
|
|
|
|
String categoryID,
|
|
|
|
|
|
|
|
patientId,
|
|
|
|
|
|
|
|
bool isLocalBusy = false}) async {
|
|
|
|
if (categoryName == null) return;
|
|
|
|
if (categoryName == null) return;
|
|
|
|
hasError = false;
|
|
|
|
hasError = false;
|
|
|
|
|
|
|
|
if (isLocalBusy)
|
|
|
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
|
|
|
else
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
await _procedureService.getProcedureCategory(
|
|
|
|
await _procedureService.getProcedureCategory(
|
|
|
|
categoryName: categoryName,
|
|
|
|
categoryName: categoryName,
|
|
|
|
@ -114,13 +129,17 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future getProcedureTemplate({String categoryID, bool isLocalBusy = false, BuildContext context}) async {
|
|
|
|
Future getProcedureTemplate(
|
|
|
|
|
|
|
|
{String categoryID,
|
|
|
|
|
|
|
|
bool isLocalBusy = false,
|
|
|
|
|
|
|
|
BuildContext context}) async {
|
|
|
|
if (isLocalBusy) {
|
|
|
|
if (isLocalBusy) {
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
await _procedureService.getProcedureTemplate(categoryID: categoryID, isLocalBusy: false);
|
|
|
|
await _procedureService.getProcedureTemplate(
|
|
|
|
|
|
|
|
categoryID: categoryID, isLocalBusy: false);
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
error = _procedureService.error;
|
|
|
|
error = _procedureService.error;
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
@ -166,27 +185,33 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future postProcedure(
|
|
|
|
Future postProcedure(PostProcedureReqModel postProcedureReqModel, int mrn,
|
|
|
|
PostProcedureReqModel postProcedureReqModel, int mrn) async {
|
|
|
|
{bool isLocalBusy = false}) async {
|
|
|
|
hasError = false;
|
|
|
|
hasError = false;
|
|
|
|
//_insuranceCardService.clearInsuranceCard();
|
|
|
|
if (isLocalBusy)
|
|
|
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
|
|
|
else
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
await _procedureService.postProcedure(postProcedureReqModel);
|
|
|
|
await _procedureService.postProcedure(postProcedureReqModel);
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
error = _procedureService.error;
|
|
|
|
error = _procedureService.error;
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
await getProcedure(mrn: mrn);
|
|
|
|
await getProcedure(mrn: mrn, isLocalBusy:isLocalBusy);
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future valadteProcedure(
|
|
|
|
Future validationProcedure(
|
|
|
|
ProcedureValadteRequestModel procedureValadteRequestModel) async {
|
|
|
|
ProcedureValidationRequestModel procedureValidateRequestModel,
|
|
|
|
|
|
|
|
{bool isLocalBusy = false}) async {
|
|
|
|
hasError = false;
|
|
|
|
hasError = false;
|
|
|
|
//_insuranceCardService.clearInsuranceCard();
|
|
|
|
if (isLocalBusy) {
|
|
|
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
await _procedureService.valadteProcedure(procedureValadteRequestModel);
|
|
|
|
}
|
|
|
|
|
|
|
|
await _procedureService.validationProcedure(procedureValidateRequestModel);
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
error = _procedureService.error;
|
|
|
|
error = _procedureService.error;
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
@ -197,9 +222,9 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
|
|
|
|
|
|
|
Future updateProcedure(
|
|
|
|
Future updateProcedure(
|
|
|
|
{UpdateProcedureRequestModel updateProcedureRequestModel,
|
|
|
|
{UpdateProcedureRequestModel updateProcedureRequestModel,
|
|
|
|
int mrn}) async {
|
|
|
|
int mrn, bool isLocalBusy = false}) async {
|
|
|
|
hasError = false;
|
|
|
|
hasError = false;
|
|
|
|
//_insuranceCardService.clearInsuranceCard();
|
|
|
|
if(isLocalBusy)setState(ViewState.BusyLocal); else
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
await _procedureService.updateProcedure(updateProcedureRequestModel);
|
|
|
|
await _procedureService.updateProcedure(updateProcedureRequestModel);
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
@ -365,15 +390,14 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
DrAppToastMsg.showSuccesToast(mes);
|
|
|
|
DrAppToastMsg.showSuccesToast(mes);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future preparePostProcedure(
|
|
|
|
Future preparePostProcedure({
|
|
|
|
{String remarks,
|
|
|
|
String remarks,
|
|
|
|
String orderType,
|
|
|
|
String orderType,
|
|
|
|
PatiantInformtion patient,
|
|
|
|
PatiantInformtion patient,
|
|
|
|
List<cpe.EntityList> entityList,
|
|
|
|
List<cpe.EntityList> entityList,
|
|
|
|
ProcedureType procedureType,
|
|
|
|
ProcedureType procedureType,
|
|
|
|
bool isLocalBusy = false,
|
|
|
|
bool isLocalBusy = false,
|
|
|
|
}) async {
|
|
|
|
}) async {
|
|
|
|
|
|
|
|
|
|
|
|
///TODO Roaa Move it to function
|
|
|
|
///TODO Roaa Move it to function
|
|
|
|
if (isLocalBusy) {
|
|
|
|
if (isLocalBusy) {
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
@ -381,8 +405,8 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
PostProcedureReqModel postProcedureReqModel = new PostProcedureReqModel();
|
|
|
|
PostProcedureReqModel postProcedureReqModel = new PostProcedureReqModel();
|
|
|
|
ProcedureValadteRequestModel procedureValadteRequestModel =
|
|
|
|
ProcedureValidationRequestModel procedureValadteRequestModel =
|
|
|
|
new ProcedureValadteRequestModel();
|
|
|
|
new ProcedureValidationRequestModel();
|
|
|
|
procedureValadteRequestModel.patientMRN = patient.patientMRN;
|
|
|
|
procedureValadteRequestModel.patientMRN = patient.patientMRN;
|
|
|
|
procedureValadteRequestModel.episodeID = patient.episodeNo;
|
|
|
|
procedureValadteRequestModel.episodeID = patient.episodeNo;
|
|
|
|
procedureValadteRequestModel.appointmentNo = patient.appointmentNo;
|
|
|
|
procedureValadteRequestModel.appointmentNo = patient.appointmentNo;
|
|
|
|
@ -415,16 +439,22 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
postProcedureReqModel.procedures = controlsProcedure;
|
|
|
|
postProcedureReqModel.procedures = controlsProcedure;
|
|
|
|
await valadteProcedure(procedureValadteRequestModel);
|
|
|
|
await validationProcedure(procedureValadteRequestModel,
|
|
|
|
|
|
|
|
isLocalBusy: isLocalBusy);
|
|
|
|
if (state == ViewState.Idle) {
|
|
|
|
if (state == ViewState.Idle) {
|
|
|
|
if (valadteProcedureList[0].entityList.length == 0) {
|
|
|
|
if (valadteProcedureList[0].entityList.length == 0) {
|
|
|
|
await postProcedure(postProcedureReqModel, patient.patientMRN);
|
|
|
|
await postProcedure(postProcedureReqModel, patient.patientMRN,
|
|
|
|
|
|
|
|
isLocalBusy: isLocalBusy);
|
|
|
|
|
|
|
|
|
|
|
|
if (state == ViewState.ErrorLocal) {
|
|
|
|
if (state == ViewState.ErrorLocal) {
|
|
|
|
Utils.showErrorToast(error);
|
|
|
|
Utils.showErrorToast(error);
|
|
|
|
getProcedure(mrn: patient.patientMRN);
|
|
|
|
getProcedure(mrn: patient.patientMRN, isLocalBusy: isLocalBusy);
|
|
|
|
} else if (state == ViewState.Idle) {
|
|
|
|
} else if (state == ViewState.Idle) {
|
|
|
|
DrAppToastMsg.showSuccesToast('procedure has been added');
|
|
|
|
DrAppToastMsg.showSuccesToast('procedure has been added');
|
|
|
|
|
|
|
|
if (Navigator.canPop(AppGlobal.CONTEX))
|
|
|
|
|
|
|
|
Navigator.pop(AppGlobal.CONTEX);
|
|
|
|
|
|
|
|
if (Navigator.canPop(AppGlobal.CONTEX))
|
|
|
|
|
|
|
|
Navigator.pop(AppGlobal.CONTEX);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (state == ViewState.ErrorLocal) {
|
|
|
|
if (state == ViewState.ErrorLocal) {
|
|
|
|
@ -440,15 +470,18 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool isEntityListSelected(cpe.EntityList masterKey, List<cpe.EntityList> entityList) {
|
|
|
|
bool isEntityListSelected(
|
|
|
|
Iterable<cpe.EntityList> history = entityList.where((element) => masterKey.procedureId == element.procedureId);
|
|
|
|
cpe.EntityList masterKey, List<cpe.EntityList> entityList) {
|
|
|
|
|
|
|
|
Iterable<cpe.EntityList> history = entityList
|
|
|
|
|
|
|
|
.where((element) => masterKey.procedureId == element.procedureId);
|
|
|
|
if (history.length > 0) {
|
|
|
|
if (history.length > 0) {
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool isProcedureEntityListSelected(ProcedureTempleteDetailsModel masterKey, List<ProcedureTempleteDetailsModel> entityList) {
|
|
|
|
bool isProcedureEntityListSelected(ProcedureTempleteDetailsModel masterKey,
|
|
|
|
|
|
|
|
List<ProcedureTempleteDetailsModel> entityList) {
|
|
|
|
Iterable<ProcedureTempleteDetailsModel> history = entityList.where(
|
|
|
|
Iterable<ProcedureTempleteDetailsModel> history = entityList.where(
|
|
|
|
(element) =>
|
|
|
|
(element) =>
|
|
|
|
masterKey.templateID == element.templateID &&
|
|
|
|
masterKey.templateID == element.templateID &&
|
|
|
|
@ -459,13 +492,12 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future addProcedures(
|
|
|
|
|
|
|
|
ProcedureViewModel model,
|
|
|
|
Future addProcedures(ProcedureViewModel model,
|
|
|
|
|
|
|
|
List<ProcedureTempleteDetailsModel> items,
|
|
|
|
List<ProcedureTempleteDetailsModel> items,
|
|
|
|
PatiantInformtion patient,
|
|
|
|
PatiantInformtion patient,
|
|
|
|
TextEditingController remarksController,
|
|
|
|
TextEditingController remarksController,
|
|
|
|
{bool isLocalBusy = false,}) async {
|
|
|
|
{bool isLocalBusy = false}) async {
|
|
|
|
if (isLocalBusy) {
|
|
|
|
if (isLocalBusy) {
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
@ -489,11 +521,12 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
await model.preparePostProcedure(
|
|
|
|
await model.preparePostProcedure(
|
|
|
|
entityList: entityList,
|
|
|
|
entityList: entityList,
|
|
|
|
patient: patient,
|
|
|
|
patient: patient,
|
|
|
|
remarks: remarksController.text);
|
|
|
|
remarks: remarksController.text,
|
|
|
|
|
|
|
|
isLocalBusy: isLocalBusy);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future filterSearchResults(String query,List<cpe.EntityList> masterList, List<cpe.EntityList> items) async {
|
|
|
|
Future filterSearchResults(String query, List<cpe.EntityList> masterList,
|
|
|
|
|
|
|
|
List<cpe.EntityList> items) async {
|
|
|
|
List<cpe.EntityList> dummySearchList = List();
|
|
|
|
List<cpe.EntityList> dummySearchList = List();
|
|
|
|
dummySearchList.addAll(masterList);
|
|
|
|
dummySearchList.addAll(masterList);
|
|
|
|
if (query.isNotEmpty) {
|
|
|
|
if (query.isNotEmpty) {
|
|
|
|
@ -511,8 +544,12 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void filterProcedureSearchResults(String query, List<ProcedureTempleteModel> masterList, List<ProcedureTempleteModel> items) {
|
|
|
|
void filterProcedureSearchResults(
|
|
|
|
|
|
|
|
String query,
|
|
|
|
|
|
|
|
List<ProcedureTempleteModel> masterList,
|
|
|
|
|
|
|
|
List<ProcedureTempleteModel> items) {
|
|
|
|
List<ProcedureTempleteModel> dummySearchList = List();
|
|
|
|
List<ProcedureTempleteModel> dummySearchList = List();
|
|
|
|
|
|
|
|
if(masterList!= null)
|
|
|
|
dummySearchList.addAll(masterList);
|
|
|
|
dummySearchList.addAll(masterList);
|
|
|
|
if (query.isNotEmpty) {
|
|
|
|
if (query.isNotEmpty) {
|
|
|
|
List<ProcedureTempleteModel> dummyListData = List();
|
|
|
|
List<ProcedureTempleteModel> dummyListData = List();
|
|
|
|
|