update procedure

merge-requests/994/head
Elham Rababh 4 years ago
parent 1a3ad32aa5
commit 33b8d6d78d

@ -1,8 +1,7 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/procedures/procedure_type.dart';
import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart';
@ -10,12 +9,11 @@ import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart';
import '../../config/config.dart';
import 'entity_list_checkbox_search_widget.dart';
class AddProcedurePage extends StatefulWidget {
@ -123,30 +121,25 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
onTap: () async {
if (procedureName.text.isNotEmpty &&
procedureName.text.length >= 3) {
GifLoaderDialogUtils.showMyDialog(context);
GifLoaderDialogUtils.showMyDialog(
context);
await model.getProcedureCategory(
patientId: patient.patientId,
categoryName:
procedureName.text,
isLocalBusy: true
);
if(model.state == ViewState.ErrorLocal){
categoryName: procedureName.text,
isLocalBusy: true);
if (model.state ==
ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(
model.error
);
model.error);
}
GifLoaderDialogUtils.hideDialog(context);
}
else {
GifLoaderDialogUtils.hideDialog(
context);
} else {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
.atLeastThreeCharacters,
);
}
},
child: Icon(
Icons.search,
@ -166,8 +159,7 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
baseViewModel: model,
child: EntityListCheckboxSearchWidget(
model: widget.model,
masterList:
model.categoriesList[0].entityList,
masterList: model.categoriesList[0].entityList,
removeProcedure: (item) {
setState(() {
entityList.remove(item);
@ -178,12 +170,13 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
entityList.add(history);
});
},
addSelectedHistories: () {
},
isEntityListSelected: (master) =>
widget.model.isEntityListSelected(master,entityList),
addSelectedHistories: () {},
isEntityListSelected: (master) => widget.model
.isEntityListSelected(master, entityList),
)),
SizedBox(height: 10,)
SizedBox(
height: 10,
)
],
),
),
@ -192,32 +185,35 @@ class _AddProcedurePageState extends State<AddProcedurePage> {
],
),
),
bottomSheet: model.state == ViewState.BusyLocal? Container(height: 0,):CustomBottomSheetContainer(
label: procedureType.getAddButtonTitle(context),
onTap: () async {
{
GifLoaderDialogUtils.showMyDialog(context);
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
.fillTheMandatoryProcedureDetails,
bottomSheet: model.state == ViewState.BusyLocal
? Container(
height: 0,
)
: CustomBottomSheetContainer(
label: procedureType.getAddButtonTitle(context),
onTap: () async {
{
GifLoaderDialogUtils.showMyDialog(context);
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
.fillTheMandatoryProcedureDetails,
);
GifLoaderDialogUtils.hideDialog(context);
return;
}
GifLoaderDialogUtils.showMyDialog(context);
await model.preparePostProcedure(
orderType: selectedType.toString(),
entityList: entityList,
patient: patient,
remarks: remarksController.text,
procedureType: ProcedureType.PROCEDURE,
isLocalBusy: true,
);
GifLoaderDialogUtils.hideDialog(context);
return;
}
GifLoaderDialogUtils.showMyDialog(context);
await model.preparePostProcedure(
orderType: selectedType.toString(),
entityList: entityList,
patient: patient,
remarks: remarksController.text,
procedureType: ProcedureType.PROCEDURE,
isLocalBusy: true,
);
GifLoaderDialogUtils.hideDialog(context);
}
}
),
}),
),
);
}

@ -1,18 +1,17 @@
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/viewModel/prescription/prescription_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart';
import 'package:doctor_app_flutter/screens/prescription/add_prescription/add_prescription.dart';
import 'package:doctor_app_flutter/screens/procedures/favorite_procedure/add_favourite_procedure.dart';
import 'package:doctor_app_flutter/screens/procedures/add_procedure_page.dart';
import 'package:doctor_app_flutter/screens/procedures/favorite_procedure/add_favourite_procedure.dart';
import 'package:doctor_app_flutter/screens/procedures/procedure_type.dart';
import 'package:doctor_app_flutter/screens/procedures/tab_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:flutter/material.dart';
class BaseAddProcedureTabPage extends StatefulWidget {
final ProcedureViewModel previousProcedureViewModel;
final PrescriptionViewModel prescriptionModel;
@ -67,24 +66,25 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
return BaseView<ProcedureViewModel>(
onModelReady: (model) async {
if(widget.previousProcedureViewModel == null) {
if (widget.previousProcedureViewModel == null) {
await model.getProcedureTemplate(
categoryID: widget.procedureType.getCategoryId());
}
},
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold(
baseViewModel: model,
isShowAppBar: true,
appBar: BottomSheetTitle(title: procedureType.getToolbarLabel(context),),
body: NetworkBaseView(
baseViewModel: model,
isShowAppBar: true,
appBar: BottomSheetTitle(
title: procedureType.getToolbarLabel(context),
),
body: NetworkBaseView(
baseViewModel: model,
child: Scaffold(
extendBodyBehindAppBar: true,
appBar: PreferredSize(
preferredSize: Size.fromHeight(
MediaQuery.of(context).size.height * 0.070),
preferredSize:
Size.fromHeight(MediaQuery.of(context).size.height * 0.070),
child: TabBar(
isScrollable: false,
controller: _tabController,
@ -92,24 +92,16 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
indicatorWeight: 1.0,
indicatorSize: TabBarIndicatorSize.tab,
labelColor: Theme.of(context).primaryColor,
labelPadding: EdgeInsets.only(
top: 0, left: 0, right: 0, bottom: 0),
labelPadding:
EdgeInsets.only(top: 0, left: 0, right: 0, bottom: 0),
unselectedLabelColor: Colors.grey[800],
tabs: [
TabWidget.tabWidget(
screenSize,
_activeTab == 0,
procedureType
.getFavouriteTabName(context),
isFirst: true,context: context
),
TabWidget.tabWidget(
screenSize,
_activeTab == 1,
TabWidget.tabWidget(screenSize, _activeTab == 0,
procedureType.getFavouriteTabName(context),
isFirst: true, context: context),
TabWidget.tabWidget(screenSize, _activeTab == 1,
procedureType.getAllLabelName(context),
isLast: true,context: context
),
isLast: true, context: context),
],
),
),
@ -121,14 +113,13 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
controller: _tabController,
children: [
AddFavouriteProcedure(
previousProcedureViewModel: widget.previousProcedureViewModel??model,
prescriptionModel:
widget.prescriptionModel,
previousProcedureViewModel:
widget.previousProcedureViewModel ?? model,
prescriptionModel: widget.prescriptionModel,
patient: patient,
procedureType: procedureType,
),
if (widget.procedureType ==
ProcedureType.PRESCRIPTION)
if (widget.procedureType == ProcedureType.PRESCRIPTION)
AddPrescription(
widget.prescriptionModel,
widget.patient,
@ -145,8 +136,7 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
),
],
),
)
),
)),
),
);
}

@ -1,13 +1,14 @@
import 'package:doctor_app_flutter/core/model/procedure/categories_procedure.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/TextFields.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../../config/config.dart';
class EntityListCheckboxSearchWidget extends StatefulWidget {
@ -18,16 +19,15 @@ class EntityListCheckboxSearchWidget extends StatefulWidget {
final bool Function(EntityList) isEntityListSelected;
final List<EntityList> masterList;
EntityListCheckboxSearchWidget(
{Key key,
this.model,
this.addSelectedHistories,
this.removeProcedure,
this.masterList,
this.addProcedure,
this.isEntityListSelected,
})
: super(key: key);
EntityListCheckboxSearchWidget({
Key key,
this.model,
this.addSelectedHistories,
this.removeProcedure,
this.masterList,
this.addProcedure,
this.isEntityListSelected,
}) : super(key: key);
@override
_EntityListCheckboxSearchWidgetState createState() =>
@ -80,7 +80,8 @@ class _EntityListCheckboxSearchWidgetState
suffixIcon: EvaIcons.search,
suffixIconColor: Color(0xff2B353E),
onChanged: (value) {
widget.model.filterSearchResults(value, widget.masterList, items);
widget.model.filterSearchResults(
value, widget.masterList, items);
},
hasBorder: false,
),
@ -106,8 +107,8 @@ class _EntityListCheckboxSearchWidgetState
widget.removeProcedure(
historyInfo);
} else {
widget
.addProcedure(historyInfo);
widget.addProcedure(
historyInfo);
}
});
}),

@ -64,8 +64,8 @@ class _ExpansionProcedureState extends State<ExpansionProcedure> {
children: <Widget>[
Expanded(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Icon(
Icons.folder,
size: 20,
@ -76,17 +76,16 @@ class _ExpansionProcedureState extends State<ExpansionProcedure> {
padding: const EdgeInsets.symmetric(
horizontal: 10, vertical: 0),
child: AppText(
widget.isProcedure == true
? "Procedures for " +
widget.procedureTempleteModel.templateName
: "Prescription for " +
widget.procedureTempleteModel.templateName,
letterSpacing: -0.72,
fontSize: 16.0,
color: AppGlobal.appTextColor,
fontWeight: FontWeight.w600,
widget.isProcedure == true
? "Procedures for " +
widget.procedureTempleteModel.templateName
: "Prescription for " +
widget.procedureTempleteModel.templateName,
letterSpacing: -0.72,
fontSize: 16.0,
color: AppGlobal.appTextColor,
fontWeight: FontWeight.w600,
),
),
),
],
@ -176,12 +175,13 @@ class _ExpansionProcedureState extends State<ExpansionProcedure> {
padding: const EdgeInsets.symmetric(
horizontal: 10, vertical: 0),
child: AppText(
Utils.convertToTitleCase(itemProcedure.procedureName),
fontSize: 14.0,
variant: "bodyText",
bold: true,
color: Color(0xff575757),
fontFamily: 'Poppins-Bold.ttf',
Utils.convertToTitleCase(
itemProcedure.procedureName),
fontSize: 14.0,
variant: "bodyText",
bold: true,
color: Color(0xff575757),
fontFamily: 'Poppins-Bold.ttf',
),
),
),

@ -1,7 +1,7 @@
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart';
import 'package:doctor_app_flutter/core/viewModel/prescription/prescription_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/prescription/prescription_checkout_screen.dart';
import 'package:doctor_app_flutter/screens/procedures/favorite_procedure/entity_list_fav_procedure.dart';
@ -66,7 +66,8 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
});
},
isEntityFavListSelected: (master) =>
procedureViewModel.isProcedureEntityListSelected(master, entityList),
procedureViewModel.isProcedureEntityListSelected(
master, entityList),
groupProcedures: groupProcedures,
selectProcedures: (selectedProcedure) {
setState(() {
@ -116,7 +117,8 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
MaterialPageRoute(
builder: (context) => ProcedureCheckOutScreen(
items: entityList,
previousProcedureViewModel: widget.previousProcedureViewModel,
previousProcedureViewModel:
widget.previousProcedureViewModel,
patient: widget.patient,
addButtonTitle: widget.procedureType
.getAddButtonTitle(context),

@ -8,6 +8,7 @@ import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../../../config/config.dart';
import '../../../widgets/shared/text_fields/app_text_field_custom_serach.dart';
@ -76,7 +77,6 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
TextEditingController remarksController = TextEditingController();
TextEditingController patientFileInfoController = TextEditingController();
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
@ -88,19 +88,18 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
child: Container(
margin: EdgeInsets.only(top: 15),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: Colors.white),
borderRadius: BorderRadius.circular(8), color: Colors.white),
child: ListView(
children: [
AppTextFieldCustomSearch(
searchController: patientFileInfoController,
onChangeFun: (value) {
widget.model.filterProcedureSearchResults(value, widget.masterList, items);
widget.model.filterProcedureSearchResults(
value, widget.masterList, items);
},
marginTop: 5,
inputFormatters: [
FilteringTextInputFormatter.allow(
RegExp(ONLY_LETTERS))
FilteringTextInputFormatter.allow(RegExp(ONLY_LETTERS))
],
inputType: TextInputType.text,
hintText: TranslationBase.of(context).searchFavoriteTemplate,
@ -110,16 +109,14 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
),
widget.model.templateList.length != 0
? Column(
children:
widget.model.templateList.map((historyInfo) {
children: widget.model.templateList.map((historyInfo) {
return ExpansionProcedure(
procedureTempleteModel: historyInfo,
model: widget.model,
removeFavProcedure: widget.removeFavProcedure,
addFavProcedure: widget.addFavProcedure,
selectProcedures: widget.selectProcedures,
isEntityListSelected:
widget.isEntityListSelected,
isEntityListSelected: widget.isEntityListSelected,
isEntityFavListSelected:
widget.isEntityFavListSelected,
isProcedure: widget.isProcedure,

@ -1,24 +1,24 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.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/core/model/patient/patiant_info_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/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/TextFields.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../../../config/config.dart';
class ProcedureCheckOutScreen extends StatefulWidget {
final List<ProcedureTempleteDetailsModel> items;
final ProcedureViewModel previousProcedureViewModel;
final ProcedureViewModel previousProcedureViewModel;
final PatiantInformtion patient;
final String addButtonTitle;
final String toolbarTitle;
@ -48,8 +48,8 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
backgroundColor: Color(0xffF8F8F8).withOpacity(0.9),
isShowAppBar: true,
appBar: PatientSearchHeader(
title: widget.toolbarTitle ?? 'Add Procedure',
),
title: widget.toolbarTitle ?? 'Add Procedure',
),
body: SingleChildScrollView(
child: Center(
child: FractionallySizedBox(
@ -63,10 +63,11 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
scrollDirection: Axis.vertical,
itemCount: widget.items.length,
physics: BouncingScrollPhysics(),
shrinkWrap: true,
itemBuilder: (BuildContext ctxt, int index) {
final TextEditingController remarksControllerNew = TextEditingController(text: widget.items[index].remarks);
final TextEditingController remarksControllerNew =
TextEditingController(
text: widget.items[index].remarks);
return Container(
margin: EdgeInsets.only(bottom: 15.0),
@ -78,11 +79,13 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
initiallyExpanded: true,
title: Row(
children: [
Expanded(
child:
AppText(Utils.convertToTitleCase(widget.items[index].procedureName), fontWeight: FontWeight.w700,color: AppGlobal.appTextColor,
)),
child: AppText(
Utils.convertToTitleCase(
widget.items[index].procedureName),
fontWeight: FontWeight.w700,
color: AppGlobal.appTextColor,
)),
],
),
children: [
@ -90,7 +93,8 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Row(
children: [
@ -98,7 +102,8 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
padding: const EdgeInsets.symmetric(
horizontal: 11),
child: AppText(
TranslationBase.of(context).orderType,
TranslationBase.of(context)
.orderType,
fontWeight: FontWeight.w700,
color: Color(0xff2B353E),
),
@ -110,10 +115,11 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
Radio(
activeColor: Color(0xFFD02127),
value: 0,
groupValue:
widget.items[index].selectedType,
groupValue: widget
.items[index].selectedType,
onChanged: (value) {
widget.items[index].selectedType = 0;
widget.items[index].selectedType =
0;
setState(() {
widget.items[index].type =
value.toString();
@ -127,11 +133,12 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
),
Radio(
activeColor: Color(0xFFD02127),
groupValue:
widget.items[index].selectedType,
groupValue: widget
.items[index].selectedType,
value: 1,
onChanged: (value) {
widget.items[index].selectedType = 1;
widget.items[index].selectedType =
1;
setState(() {
widget.items[index].type =
value.toString();
@ -175,7 +182,6 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
),
);
}),
SizedBox(
height: 90,
),
@ -196,7 +202,12 @@ class _ProcedureCheckOutScreenState extends State<ProcedureCheckOutScreen> {
fontWeight: FontWeight.w700,
onPressed: () async {
GifLoaderDialogUtils.showMyDialog(context);
await widget.previousProcedureViewModel.addProcedures(widget.previousProcedureViewModel, widget.items, widget.patient, remarksController, isLocalBusy: true);
await widget.previousProcedureViewModel.addProcedures(
widget.previousProcedureViewModel,
widget.items,
widget.patient,
remarksController,
isLocalBusy: true);
GifLoaderDialogUtils.hideDialog(context);
},
),

@ -1,12 +1,12 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/core/model/procedure/get_ordered_procedure_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/utils/date-utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/user-guid/CusomRow.dart';
import 'package:flutter/cupertino.dart';
@ -202,9 +202,10 @@ class ProcedureCard extends StatelessWidget {
children: [
Expanded(
child: AppText(
entityList.remarks!= null?Utils.convertToTitleCase(
entityList.remarks.toString()) :
'',
entityList.remarks != null
? Utils.convertToTitleCase(
entityList.remarks.toString())
: '',
fontSize: 12,
),
),

@ -1,22 +1,22 @@
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_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/procedures/procedure_card.dart';
import 'package:doctor_app_flutter/screens/procedures/procedure_type.dart';
import 'package:doctor_app_flutter/screens/procedures/update_procedure.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/widgets/patients/patient_service_title.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/add-order/addNewOrder.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-app-bar.dart';
import 'package:doctor_app_flutter/widgets/patients/patient_service_title.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/transitions/slide_up_page.dart';
import 'package:flutter/material.dart';
import '../../widgets/shared/errors/error_message.dart';
import 'base_add_procedure_tab_page.dart';
@ -59,8 +59,9 @@ class ProcedureScreen extends StatelessWidget {
height: 12,
),
if ((model.procedureList.length == 0 &&
patient.patientStatusType != 43) || patient.patientStatusType != null &&
patient.patientStatusType == 43)
patient.patientStatusType != 43) ||
patient.patientStatusType != null &&
patient.patientStatusType == 43)
ServiceTitle(
title: TranslationBase.of(context).orderTestOr,
subTitle: TranslationBase.of(context).procedure,
@ -72,7 +73,8 @@ class ProcedureScreen extends StatelessWidget {
onTap: () async {
GifLoaderDialogUtils.showMyDialog(context);
await model.getProcedureTemplate(
categoryID: ProcedureType.PROCEDURE.getCategoryId(), isLocalBusy: true);
categoryID: ProcedureType.PROCEDURE.getCategoryId(),
isLocalBusy: true);
GifLoaderDialogUtils.hideDialog(context);
Navigator.push(
@ -86,8 +88,7 @@ class ProcedureScreen extends StatelessWidget {
settingRoute: 'AddProcedureTabPage'),
);
},
label: TranslationBase.of(context)
.addMoreProcedure,
label: TranslationBase.of(context).addMoreProcedure,
),
if (model.procedureList.isNotEmpty)
ListView.builder(
@ -95,7 +96,6 @@ class ProcedureScreen extends StatelessWidget {
itemCount: model.procedureList[0].rowcount,
shrinkWrap: true,
physics: BouncingScrollPhysics(),
itemBuilder: (BuildContext ctxt, int index) {
return ProcedureCard(
categoryID: model

@ -3,19 +3,17 @@ import 'package:doctor_app_flutter/utils/tab_utils.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class TabWidget {
class TabWidget {
static Widget tabWidget(
Size screenSize,
bool isActive,
String title,
{
int counter = -1,
bool isFirst = false,
bool isMiddle = false,
bool isLast = false,
context,
}) {
Size screenSize,
bool isActive,
String title, {
int counter = -1,
bool isFirst = false,
bool isMiddle = false,
bool isLast = false,
context,
}) {
ProjectViewModel projectViewModel = Provider.of(context);
return Center(
child: Container(
@ -29,7 +27,6 @@ class TabWidget {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TabUtils.getTabText(title: title, isActive: isActive),
if (counter != -1)
TabUtils.getTabCounter(isActive: isActive, counter: counter)

@ -1,23 +1,20 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.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/update_procedure_request_model.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/core/model/patient/patiant_info_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/utils/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/bottom_sheet/bottom_sheet_container.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/TextFields.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
@ -103,11 +100,9 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
builder:
(BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold(
isShowAppBar: true,
baseViewModel: model,
appBar: PatientSearchHeader(
title: "Update Procedure",
),
isShowAppBar: true,
appBar: PatientSearchHeader(title: "Update Procedure"),
body: SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height * 0.9,
@ -181,10 +176,10 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
bottomSheet: CustomBottomSheetContainer(
label: TranslationBase.of(context).updateProcedure.toUpperCase(),
onTap: () => updateProcedure(
limetNO: widget.limetNo,
lineItemNo: widget.limetNo,
orderNo: widget.orderNo,
orderType: selectedType.toString(),
categorieId: widget.categoryId,
categoryId: widget.categoryId,
procedureId: widget.procedureId,
entityList: entityList,
patient: widget.patient,
@ -199,15 +194,15 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
updateProcedure(
{ProcedureViewModel model,
String remarks,
int limetNO,
int lineItemNo,
int orderNo,
String newProcedureId,
String newCategorieId,
String newCategoryId,
List<EntityList> entityList,
String orderType,
String procedureId,
PatiantInformtion patient,
String categorieId}) async {
String categoryId}) async {
UpdateProcedureRequestModel updateProcedureReqModel =
new UpdateProcedureRequestModel();
List<Controls> controls = List();
@ -217,7 +212,7 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
updateProcedureReqModel.episodeID = patient.episodeNo;
updateProcedureReqModel.patientMRN = patient.patientMRN;
updateProcedureReqModel.lineItemNo = limetNO;
updateProcedureReqModel.lineItemNo = lineItemNo;
updateProcedureReqModel.orderNo = orderNo;
{
@ -230,22 +225,23 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
);
controlsProcedure.procedure = procedureId;
controlsProcedure.category = '0' + categorieId;
controlsProcedure.category = '0' + categoryId;
controlsProcedure.controls = controls;
}
updateProcedureReqModel.procedureDetail = controlsProcedure;
GifLoaderDialogUtils.showMyDialog(context);
await model.updateProcedure(
updateProcedureRequestModel: updateProcedureReqModel,
mrn: patient.patientMRN);
if (model.state == ViewState.ErrorLocal) {
Utils.showErrorToast(model.error);
model.getProcedure(mrn: patient.patientMRN);
} else if (model.state == ViewState.Idle) {
DrAppToastMsg.showSuccesToast('procedure has been updated');
model.getProcedure(mrn: patient.patientMRN);
await model.getProcedure(mrn: patient.patientMRN, isLocalBusy: true);
}
GifLoaderDialogUtils.hideDialog(context);
}
}

Loading…
Cancel
Save