diff --git a/lib/core/viewModel/procedure_View_model.dart b/lib/core/viewModel/procedure_View_model.dart index d9e77686..76571092 100644 --- a/lib/core/viewModel/procedure_View_model.dart +++ b/lib/core/viewModel/procedure_View_model.dart @@ -222,9 +222,9 @@ class ProcedureViewModel extends BaseViewModel { Future updateProcedure( {UpdateProcedureRequestModel updateProcedureRequestModel, - int mrn}) async { + int mrn, bool isLocalBusy = false}) async { hasError = false; - //_insuranceCardService.clearInsuranceCard(); + if(isLocalBusy)setState(ViewState.BusyLocal); else setState(ViewState.Busy); await _procedureService.updateProcedure(updateProcedureRequestModel); if (_procedureService.hasError) { @@ -549,6 +549,7 @@ class ProcedureViewModel extends BaseViewModel { List masterList, List items) { List dummySearchList = List(); + if(masterList!= null) dummySearchList.addAll(masterList); if (query.isNotEmpty) { List dummyListData = List(); diff --git a/lib/screens/procedures/procedure_screen.dart b/lib/screens/procedures/procedure_screen.dart index 76947d00..23424463 100644 --- a/lib/screens/procedures/procedure_screen.dart +++ b/lib/screens/procedures/procedure_screen.dart @@ -123,9 +123,12 @@ class ProcedureScreen extends StatelessWidget { procedureId: model.procedureList[0] .entityList[index].procedureId, limetNo: model.procedureList[0] - .entityList[index].lineItemNo); + .entityList[index].lineItemNo, + + ); }, patient: patient, + doctorID: model?.doctorProfile?.doctorID, ); }), diff --git a/lib/screens/procedures/update_procedure.dart b/lib/screens/procedures/update_procedure.dart index 5e6bc1c5..1885582f 100644 --- a/lib/screens/procedures/update_procedure.dart +++ b/lib/screens/procedures/update_procedure.dart @@ -6,7 +6,7 @@ import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dar import 'package:doctor_app_flutter/core/model/procedure/update_procedure_request_model.dart'; import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart'; +import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/utils/utils.dart'; @@ -38,18 +38,19 @@ void updateProcedureForm(context, remarks: remarks, remarksController: remarksController, patient: patient, - model: model, + previousModel: model, procedureId: procedureId, categoryId: categoreId, orderNo: orderNo, limetNo: limetNo, + selectedType: int.parse(orderType), ); }); } class UpdateProcedureWidget extends StatefulWidget { final PatiantInformtion patient; - final ProcedureViewModel model; + final ProcedureViewModel previousModel; final String procedureName; final String remarks; final TextEditingController remarksController; @@ -57,9 +58,11 @@ class UpdateProcedureWidget extends StatefulWidget { final String categoryId; final int orderNo; final int limetNo; + int selectedType; + UpdateProcedureWidget( - {this.model, + {this.previousModel, this.procedureName, this.remarks, this.remarksController, @@ -67,18 +70,17 @@ class UpdateProcedureWidget extends StatefulWidget { this.procedureId, this.categoryId, this.orderNo, - this.limetNo}); + this.limetNo, this.selectedType}); @override _UpdateProcedureWidgetState createState() => _UpdateProcedureWidgetState(); } class _UpdateProcedureWidgetState extends State { - int selectedType = 0; setSelectedType(int val) { setState(() { - selectedType = val; + widget.selectedType = val; }); } @@ -93,102 +95,99 @@ class _UpdateProcedureWidgetState extends State { /// TODO Roaa Add translation and make sure it working fine @override Widget build(BuildContext context) { - return StatefulBuilder(builder: - (BuildContext context, StateSetter setState /*You can rename this!*/) { - return BaseView( - onModelReady: (model) => model.getCategory(), - builder: - (BuildContext context, ProcedureViewModel model, Widget child) => - AppScaffold( - baseViewModel: model, - isShowAppBar: true, - appBar: PatientSearchHeader(title: "Update Procedure"), - body: SingleChildScrollView( - child: Container( - height: MediaQuery.of(context).size.height * 0.9, - child: Form( - child: Padding( - padding: - EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - widget.procedureName.toUpperCase(), - fontWeight: FontWeight.w700, - ), - SizedBox( - height: 30.0, - ), - Container( - child: Row( - children: [ - AppText(TranslationBase.of(context).orderType), - Radio( - activeColor: AppGlobal.appRedColor, - value: 0, - groupValue: selectedType, - onChanged: (value) { - setSelectedType(value); - }, - ), - Text('routine'), - Radio( - activeColor: AppGlobal.appRedColor, - groupValue: selectedType, - value: 1, - onChanged: (value) { - setSelectedType(value); - }, - ), - Text(TranslationBase.of(context).urgent), - ], + return BaseView( + onModelReady: (model) => model.getCategory(), + builder: + (BuildContext context, ProcedureViewModel _model, Widget child) => + AppScaffold( + baseViewModel: widget.previousModel, + isShowAppBar: true, + appBar: BottomSheetTitle(title: "Update Procedure"), + body: SingleChildScrollView( + child: Container( + height: MediaQuery.of(context).size.height * 0.9, + child: Form( + child: Padding( + padding: + EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AppText( + Utils.convertToTitleCase(widget.procedureName), + fontWeight: FontWeight.w700, + ), + SizedBox( + height: 30.0, + ), + Container( + child: Row( + children: [ + AppText(TranslationBase.of(context).orderType), + Radio( + activeColor: AppGlobal.appRedColor, + value: 0, + groupValue: widget.selectedType, + onChanged: (value) { + setSelectedType(value); + }, + ), + Text('routine'), + Radio( + activeColor: AppGlobal.appRedColor, + groupValue: widget.selectedType, + value: 1, + onChanged: (value) { + setSelectedType(value); + }, + ), + Text(TranslationBase.of(context).urgent), + ], + ), + ), + SizedBox( + height: 12.0, + ), + Container( + decoration: BoxDecoration( + borderRadius: + BorderRadius.all(Radius.circular(6.0)), + border: Border.all( + width: 1.0, color: HexColor("#CCCCCC"))), + child: TextFields( + fontSize: 15.0, + controller: widget.remarksController, + hintText: widget.remarksController.text.isEmpty + ? 'No Remarks Added' + : '', + maxLines: 3, + minLines: 2, + onChanged: (value) {}, + ), ), - ), - SizedBox( - height: 12.0, - ), - Container( - decoration: BoxDecoration( - borderRadius: - BorderRadius.all(Radius.circular(6.0)), - border: Border.all( - width: 1.0, color: HexColor("#CCCCCC"))), - child: TextFields( - fontSize: 15.0, - controller: widget.remarksController, - hintText: widget.remarksController.text.isEmpty - ? 'No Remarks Added' - : '', - maxLines: 3, - minLines: 2, - onChanged: (value) {}, + SizedBox( + height: 70.0, ), - ), - SizedBox( - height: 70.0, - ), - ], + ], + ), ), - ), - )), + )), + ), + bottomSheet: CustomBottomSheetContainer( + label: TranslationBase.of(context).updateProcedure, + onTap: () => updateProcedure( + lineItemNo: widget.limetNo, + orderNo: widget.orderNo, + orderType: widget.selectedType.toString(), + categoryId: widget.categoryId, + procedureId: widget.procedureId, + entityList: entityList, + patient: widget.patient, + model: widget.previousModel, + remarks: widget.remarksController.text), + ), ), - bottomSheet: CustomBottomSheetContainer( - label: TranslationBase.of(context).updateProcedure.toUpperCase(), - onTap: () => updateProcedure( - lineItemNo: widget.limetNo, - orderNo: widget.orderNo, - orderType: selectedType.toString(), - categoryId: widget.categoryId, - procedureId: widget.procedureId, - entityList: entityList, - patient: widget.patient, - model: widget.model, - remarks: widget.remarksController.text), - ), - ), - ); - }); + ); } updateProcedure( @@ -231,17 +230,18 @@ class _UpdateProcedureWidgetState extends State { } updateProcedureReqModel.procedureDetail = controlsProcedure; GifLoaderDialogUtils.showMyDialog(context); - await model.updateProcedure( + await widget.previousModel.updateProcedure( updateProcedureRequestModel: updateProcedureReqModel, - mrn: patient.patientMRN); + mrn: patient.patientMRN, isLocalBusy: true); if (model.state == ViewState.ErrorLocal) { Utils.showErrorToast(model.error); } else if (model.state == ViewState.Idle) { DrAppToastMsg.showSuccesToast('procedure has been updated'); - await model.getProcedure(mrn: patient.patientMRN, isLocalBusy: true); - } + await widget.previousModel.getProcedure(mrn: patient.patientMRN, isLocalBusy: true); + Navigator.of(context).pop(); + } GifLoaderDialogUtils.hideDialog(context); } }