From e1d00b87ad34a67c31a2dcddf87a2c650649ea7c Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Wed, 19 May 2021 14:46:29 +0300 Subject: [PATCH] favourite template Procedure service --- .../procedure/procedure_service.dart | 4 +- lib/core/viewModel/procedure_View_model.dart | 2 + .../procedures/add-favourite-procedure.dart | 19 ++- .../procedures/entity_list_fav_procedure.dart | 129 ++++++++++-------- 4 files changed, 90 insertions(+), 64 deletions(-) diff --git a/lib/core/service/patient_medical_file/procedure/procedure_service.dart b/lib/core/service/patient_medical_file/procedure/procedure_service.dart index f31bcc73..9673b9bf 100644 --- a/lib/core/service/patient_medical_file/procedure/procedure_service.dart +++ b/lib/core/service/patient_medical_file/procedure/procedure_service.dart @@ -88,9 +88,11 @@ class ProcedureService extends BaseService { Future getProcedureTemplateDetails( {int doctorId, int projectId, int clinicId, int templateId}) async { _procedureTempleteDetailsRequestModel = - ProcedureTempleteDetailsRequestModel(templateID: templateId); + ProcedureTempleteDetailsRequestModel( + templateID: templateId, searchType: 1, patientID: 0); hasError = false; //insuranceApprovalInPatient.clear(); + _templateDetailsList.clear(); await baseAppClient.post(GET_PROCEDURE_TEMPLETE_DETAILS, onSuccess: (dynamic response, int statusCode) { diff --git a/lib/core/viewModel/procedure_View_model.dart b/lib/core/viewModel/procedure_View_model.dart index 434e108e..bf790335 100644 --- a/lib/core/viewModel/procedure_View_model.dart +++ b/lib/core/viewModel/procedure_View_model.dart @@ -110,7 +110,9 @@ class ProcedureViewModel extends BaseViewModel { setState(ViewState.Idle); } + int tempId = 0; Future getProcedureTemplateDetails({int templateId}) async { + tempId = templateId; hasError = false; //_insuranceCardService.clearInsuranceCard(); setState(ViewState.Busy); diff --git a/lib/screens/procedures/add-favourite-procedure.dart b/lib/screens/procedures/add-favourite-procedure.dart index ee128caa..89a382ad 100644 --- a/lib/screens/procedures/add-favourite-procedure.dart +++ b/lib/screens/procedures/add-favourite-procedure.dart @@ -1,6 +1,7 @@ import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart'; import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart'; +import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart'; import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; @@ -27,11 +28,15 @@ class _AddFavouriteProcedureState extends State { _AddFavouriteProcedureState({this.patient, this.model}); ProcedureViewModel model; PatiantInformtion patient; - List entityList = List(); + List entityList = List(); @override Widget build(BuildContext context) { return BaseView( - onModelReady: (model) => model.getProcedureTemplate(), + onModelReady: (model) async { + if (model.procedureTemplate.length == 0) { + model.getProcedureTemplate(); + } + }, builder: (BuildContext context, ProcedureViewModel model, Widget child) => AppScaffold( isShowAppBar: false, @@ -52,12 +57,12 @@ class _AddFavouriteProcedureState extends State { EntityListCheckboxSearchFavProceduresWidget( model: widget.model, masterList: widget.model.procedureTemplate, - removeHistory: (item) { + removeFavProcedure: (item) { setState(() { entityList.remove(item); }); }, - addHistory: (history) { + addFavProcedure: (history) { setState(() { entityList.add(history); }); @@ -66,7 +71,7 @@ class _AddFavouriteProcedureState extends State { //TODO build your fun herr // widget.addSelectedHistories(); }, - isEntityListSelected: (master) => + isEntityFavListSelected: (master) => isEntityListSelected(master), ) // : ProcedureListWidget( @@ -131,8 +136,8 @@ class _AddFavouriteProcedureState extends State { ); } - bool isEntityListSelected(ProcedureTempleteModel masterKey) { - Iterable history = entityList + bool isEntityListSelected(ProcedureTempleteDetailsModel masterKey) { + Iterable history = entityList .where((element) => masterKey.templateID == element.templateID); if (history.length > 0) { return true; diff --git a/lib/screens/procedures/entity_list_fav_procedure.dart b/lib/screens/procedures/entity_list_fav_procedure.dart index c052f789..31b2a784 100644 --- a/lib/screens/procedures/entity_list_fav_procedure.dart +++ b/lib/screens/procedures/entity_list_fav_procedure.dart @@ -1,5 +1,6 @@ import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart'; import 'package:doctor_app_flutter/core/model/procedure/procedure_templateModel.dart'; +import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart'; import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; @@ -17,7 +18,12 @@ class EntityListCheckboxSearchFavProceduresWidget extends StatefulWidget { final Function(ProcedureTempleteModel) addHistory; final Function(ProcedureTempleteModel) addRemarks; + final Function(ProcedureTempleteDetailsModel) removeFavProcedure; + final Function(ProcedureTempleteDetailsModel) addFavProcedure; + final Function(ProcedureTempleteDetailsModel) addProceduresRemarks; + final bool Function(ProcedureTempleteModel) isEntityListSelected; + final bool Function(ProcedureTempleteDetailsModel) isEntityFavListSelected; final List masterList; EntityListCheckboxSearchFavProceduresWidget( @@ -27,7 +33,11 @@ class EntityListCheckboxSearchFavProceduresWidget extends StatefulWidget { this.removeHistory, this.masterList, this.addHistory, + this.addFavProcedure, + this.addProceduresRemarks, + this.removeFavProcedure, this.isEntityListSelected, + this.isEntityFavListSelected, this.addRemarks}) : super(key: key); @@ -49,7 +59,7 @@ class _EntityListCheckboxSearchFavProceduresWidgetState } List items = List(); - //List items = List(); + List itemsProcedure = List(); List remarksList = List(); List typeList = List(); @@ -128,65 +138,72 @@ class _EntityListCheckboxSearchFavProceduresWidgetState ), ), children: [ - Container( - child: Padding( - padding: EdgeInsets.symmetric( - horizontal: 12), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Row( + Column( + children: widget + .model.procedureTemplateDetails + .map((itemProcedure) { + return Container( + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: 12), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, children: [ - Padding( - padding: const EdgeInsets - .symmetric( - horizontal: 11), - child: Checkbox( - value: widget - .isEntityListSelected( - historyInfo), - activeColor: - Color(0xffD02127), - onChanged: - (bool newValue) { - setState(() { - if (widget - .isEntityListSelected( - historyInfo)) { - widget.removeHistory( - historyInfo); - } else { - widget.addHistory( - historyInfo); - } - }); - }), - ), - Expanded( - child: Padding( - padding: const EdgeInsets - .symmetric( - horizontal: 10, - vertical: 0), - child: AppText( - widget - .model - .procedureTemplate[ - 0] - .templateName, - fontSize: 14.0, - variant: "bodyText", - bold: true, - color: Color( - 0xff575757)), - ), + Row( + children: [ + Padding( + padding: + const EdgeInsets + .symmetric( + horizontal: 11), + child: Checkbox( + value: widget + .isEntityFavListSelected( + itemProcedure), + activeColor: Color( + 0xffD02127), + onChanged: (bool + newValue) { + setState(() { + if (widget + .isEntityFavListSelected( + itemProcedure)) { + widget.removeFavProcedure( + itemProcedure); + } else { + widget.addFavProcedure( + itemProcedure); + } + }); + }), + ), + Expanded( + child: Padding( + padding: + const EdgeInsets + .symmetric( + horizontal: + 10, + vertical: 0), + child: AppText( + itemProcedure + .procedureName, + fontSize: 14.0, + variant: + "bodyText", + bold: true, + color: Color( + 0xff575757)), + ), + ), + ], ), ], ), - ], - ), - ), + ), + ); + }).toList(), ), SizedBox( height: 2.0,