|
|
|
|
@ -7,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/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' 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/post_procedure_req_model.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart';
|
|
|
|
|
@ -71,10 +72,17 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
List<ProcedureTempleteDetailsModel> get procedureTemplateDetails =>
|
|
|
|
|
_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;
|
|
|
|
|
await getDoctorProfile();
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
if (isLocalBusy)
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
else
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
await _procedureService.getProcedure(
|
|
|
|
|
mrn: mrn, appointmentNo: appointmentNo);
|
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
|
@ -88,10 +96,16 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future getProcedureCategory(
|
|
|
|
|
{String categoryName, String categoryID, patientId}) async {
|
|
|
|
|
{String categoryName,
|
|
|
|
|
String categoryID,
|
|
|
|
|
patientId,
|
|
|
|
|
bool isLocalBusy = false}) async {
|
|
|
|
|
if (categoryName == null) return;
|
|
|
|
|
hasError = false;
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
if (isLocalBusy)
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
else
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
await _procedureService.getProcedureCategory(
|
|
|
|
|
categoryName: categoryName,
|
|
|
|
|
categoryID: categoryID,
|
|
|
|
|
@ -115,19 +129,23 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
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) {
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
} else {
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
}
|
|
|
|
|
await _procedureService.getProcedureTemplate(categoryID: categoryID, isLocalBusy: false);
|
|
|
|
|
await _procedureService.getProcedureTemplate(
|
|
|
|
|
categoryID: categoryID, isLocalBusy: false);
|
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
|
error = _procedureService.error;
|
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
|
} else
|
|
|
|
|
setTemplateListDependOnId();
|
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setTemplateListDependOnId() {
|
|
|
|
|
@ -167,27 +185,33 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future postProcedure(
|
|
|
|
|
PostProcedureReqModel postProcedureReqModel, int mrn, {bool isLocalBusy = false}) async {
|
|
|
|
|
Future postProcedure(PostProcedureReqModel postProcedureReqModel, int mrn,
|
|
|
|
|
{bool isLocalBusy = false}) async {
|
|
|
|
|
hasError = false;
|
|
|
|
|
if(isLocalBusy) setState(ViewState.BusyLocal); else
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
if (isLocalBusy)
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
else
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
await _procedureService.postProcedure(postProcedureReqModel);
|
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
|
error = _procedureService.error;
|
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
|
} else {
|
|
|
|
|
await getProcedure(mrn: mrn);
|
|
|
|
|
await getProcedure(mrn: mrn, isLocalBusy:isLocalBusy);
|
|
|
|
|
setState(ViewState.Idle);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future validationProcedure(
|
|
|
|
|
ProcedureValidationRequestModel procedureValadteRequestModel) async {
|
|
|
|
|
ProcedureValidationRequestModel procedureValidateRequestModel,
|
|
|
|
|
{bool isLocalBusy = false}) async {
|
|
|
|
|
hasError = false;
|
|
|
|
|
//_insuranceCardService.clearInsuranceCard();
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
await _procedureService.validationProcedure(procedureValadteRequestModel);
|
|
|
|
|
if (isLocalBusy) {
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
} else {
|
|
|
|
|
setState(ViewState.Busy);
|
|
|
|
|
}
|
|
|
|
|
await _procedureService.validationProcedure(procedureValidateRequestModel);
|
|
|
|
|
if (_procedureService.hasError) {
|
|
|
|
|
error = _procedureService.error;
|
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
|
|
|
@ -366,15 +390,14 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
DrAppToastMsg.showSuccesToast(mes);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future preparePostProcedure(
|
|
|
|
|
{String remarks,
|
|
|
|
|
String orderType,
|
|
|
|
|
PatiantInformtion patient,
|
|
|
|
|
List<cpe.EntityList> entityList,
|
|
|
|
|
ProcedureType procedureType,
|
|
|
|
|
bool isLocalBusy = false,
|
|
|
|
|
}) async {
|
|
|
|
|
|
|
|
|
|
Future preparePostProcedure({
|
|
|
|
|
String remarks,
|
|
|
|
|
String orderType,
|
|
|
|
|
PatiantInformtion patient,
|
|
|
|
|
List<cpe.EntityList> entityList,
|
|
|
|
|
ProcedureType procedureType,
|
|
|
|
|
bool isLocalBusy = false,
|
|
|
|
|
}) async {
|
|
|
|
|
///TODO Roaa Move it to function
|
|
|
|
|
if (isLocalBusy) {
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
@ -416,19 +439,21 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
postProcedureReqModel.procedures = controlsProcedure;
|
|
|
|
|
await validationProcedure(procedureValadteRequestModel);
|
|
|
|
|
await validationProcedure(procedureValadteRequestModel,
|
|
|
|
|
isLocalBusy: isLocalBusy);
|
|
|
|
|
if (state == ViewState.Idle) {
|
|
|
|
|
if (valadteProcedureList[0].entityList.length == 0) {
|
|
|
|
|
await postProcedure(postProcedureReqModel, patient.patientMRN, isLocalBusy:isLocalBusy);
|
|
|
|
|
await postProcedure(postProcedureReqModel, patient.patientMRN,
|
|
|
|
|
isLocalBusy: isLocalBusy);
|
|
|
|
|
|
|
|
|
|
if (state == ViewState.ErrorLocal) {
|
|
|
|
|
Utils.showErrorToast(error);
|
|
|
|
|
getProcedure(mrn: patient.patientMRN);
|
|
|
|
|
getProcedure(mrn: patient.patientMRN, isLocalBusy: isLocalBusy);
|
|
|
|
|
} else if (state == ViewState.Idle) {
|
|
|
|
|
DrAppToastMsg.showSuccesToast('procedure has been added');
|
|
|
|
|
if(Navigator.canPop(AppGlobal.CONTEX))
|
|
|
|
|
Navigator.pop(AppGlobal.CONTEX);
|
|
|
|
|
if(Navigator.canPop(AppGlobal.CONTEX))
|
|
|
|
|
if (Navigator.canPop(AppGlobal.CONTEX))
|
|
|
|
|
Navigator.pop(AppGlobal.CONTEX);
|
|
|
|
|
if (Navigator.canPop(AppGlobal.CONTEX))
|
|
|
|
|
Navigator.pop(AppGlobal.CONTEX);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
@ -445,18 +470,21 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool isEntityListSelected(cpe.EntityList masterKey, List<cpe.EntityList> entityList) {
|
|
|
|
|
Iterable<cpe.EntityList> history = entityList.where((element) => masterKey.procedureId == element.procedureId);
|
|
|
|
|
bool isEntityListSelected(
|
|
|
|
|
cpe.EntityList masterKey, List<cpe.EntityList> entityList) {
|
|
|
|
|
Iterable<cpe.EntityList> history = entityList
|
|
|
|
|
.where((element) => masterKey.procedureId == element.procedureId);
|
|
|
|
|
if (history.length > 0) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool isProcedureEntityListSelected(ProcedureTempleteDetailsModel masterKey, List<ProcedureTempleteDetailsModel> entityList) {
|
|
|
|
|
bool isProcedureEntityListSelected(ProcedureTempleteDetailsModel masterKey,
|
|
|
|
|
List<ProcedureTempleteDetailsModel> entityList) {
|
|
|
|
|
Iterable<ProcedureTempleteDetailsModel> history = entityList.where(
|
|
|
|
|
(element) =>
|
|
|
|
|
masterKey.templateID == element.templateID &&
|
|
|
|
|
(element) =>
|
|
|
|
|
masterKey.templateID == element.templateID &&
|
|
|
|
|
masterKey.procedureName == element.procedureName);
|
|
|
|
|
if (history.length > 0) {
|
|
|
|
|
return true;
|
|
|
|
|
@ -464,12 +492,12 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future addProcedures(ProcedureViewModel model,
|
|
|
|
|
Future addProcedures(
|
|
|
|
|
ProcedureViewModel model,
|
|
|
|
|
List<ProcedureTempleteDetailsModel> items,
|
|
|
|
|
PatiantInformtion patient,
|
|
|
|
|
TextEditingController remarksController,{bool isLocalBusy = false}) async {
|
|
|
|
|
TextEditingController remarksController,
|
|
|
|
|
{bool isLocalBusy = false}) async {
|
|
|
|
|
if (isLocalBusy) {
|
|
|
|
|
setState(ViewState.BusyLocal);
|
|
|
|
|
} else {
|
|
|
|
|
@ -493,11 +521,12 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
await model.preparePostProcedure(
|
|
|
|
|
entityList: entityList,
|
|
|
|
|
patient: patient,
|
|
|
|
|
remarks: remarksController.text, isLocalBusy: isLocalBusy);
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
dummySearchList.addAll(masterList);
|
|
|
|
|
if (query.isNotEmpty) {
|
|
|
|
|
@ -515,7 +544,10 @@ 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();
|
|
|
|
|
dummySearchList.addAll(masterList);
|
|
|
|
|
if (query.isNotEmpty) {
|
|
|
|
|
@ -525,12 +557,12 @@ class ProcedureViewModel extends BaseViewModel {
|
|
|
|
|
dummyListData.add(item);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
items.clear();
|
|
|
|
|
items.addAll(dummyListData);
|
|
|
|
|
items.clear();
|
|
|
|
|
items.addAll(dummyListData);
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
|
|
|
|
items.clear();
|
|
|
|
|
items.addAll(masterList);
|
|
|
|
|
items.clear();
|
|
|
|
|
items.addAll(masterList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|