Merge branch 'fix-issues' into 'development'

procedure updates

See merge request Cloud_Solution/doctor_app_flutter!333
merge-requests/334/merge
Mohammad Aljammal 5 years ago
commit 5a4b084446

@ -84,7 +84,7 @@ class ProcedureService extends BaseService {
pageIndex: 0, pageIndex: 0,
clinicId: 0, clinicId: 0,
pageSize: 0, pageSize: 0,
category: categoryID, category: categoryID ?? "01",
); );
hasError = false; hasError = false;
_categoriesList.clear(); _categoriesList.clear();

@ -18,6 +18,7 @@ import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'entity_list_checkbox_search_widget.dart'; import 'entity_list_checkbox_search_widget.dart';
import 'entity_list_procedure_widget.dart';
valdateProcedure(ProcedureViewModel model, PatiantInformtion patient, valdateProcedure(ProcedureViewModel model, PatiantInformtion patient,
List<EntityList> entityList) async { List<EntityList> entityList) async {
@ -58,7 +59,7 @@ postProcedure(
controlValue: element.remarks != null ? element.remarks : ""), controlValue: element.remarks != null ? element.remarks : ""),
); );
controls.add( controls.add(
Controls(code: "ordertype", controlValue: element.type), Controls(code: "ordertype", controlValue: "0"),
); );
controlsProcedure.add(Procedures( controlsProcedure.add(Procedures(
category: element.categoryID, category: element.categoryID,
@ -124,7 +125,10 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
TextEditingController procedureController = TextEditingController(); TextEditingController procedureController = TextEditingController();
TextEditingController remarksController = TextEditingController(); TextEditingController remarksController = TextEditingController();
List<EntityList> entityList = List(); List<EntityList> entityList = List();
List<EntityList> entityListProcedure = List();
dynamic selectedCategory; dynamic selectedCategory;
setSelectedType(int val) { setSelectedType(int val) {
setState(() { setState(() {
selectedType = val; selectedType = val;
@ -153,10 +157,9 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
AppText( AppText(
TranslationBase.of(context) 'Please Select Category',
.selectProcedures
.toUpperCase(),
fontWeight: FontWeight.w900, fontWeight: FontWeight.w900,
fontSize: 15.0,
), ),
SizedBox( SizedBox(
height: 10.0, height: 10.0,
@ -219,29 +222,53 @@ class _AddSelectedProcedureState extends State<AddSelectedProcedure> {
), ),
if (widget.model.categoriesList.length != 0) if (widget.model.categoriesList.length != 0)
NetworkBaseView( NetworkBaseView(
baseViewModel: model, baseViewModel: model,
child: EntityListCheckboxSearchWidget( child: selectedCategory != null
model: widget.model, ? selectedCategory['categoryId'] == 02 ||
masterList: selectedCategory['categoryId'] == 03
widget.model.categoriesList[0].entityList, ? EntityListCheckboxSearchWidget(
removeHistory: (item) { model: widget.model,
setState(() { masterList: widget.model
entityList.remove(item); .categoriesList[0].entityList,
}); removeHistory: (item) {
}, setState(() {
addHistory: (history) { entityList.remove(item);
setState(() { });
entityList.add(history); },
}); addHistory: (history) {
}, setState(() {
addSelectedHistories: () { entityList.add(history);
//TODO build your fun herr });
// widget.addSelectedHistories(); },
}, addSelectedHistories: () {
isEntityListSelected: (master) => //TODO build your fun herr
isEntityListSelected(master), // widget.addSelectedHistories();
), },
), isEntityListSelected: (master) =>
isEntityListSelected(master),
)
: ProcedureListWidget(
model: widget.model,
masterList: widget.model
.categoriesList[0].entityList,
removeHistory: (item) {
setState(() {
entityList.remove(item);
});
},
addHistory: (history) {
setState(() {
entityList.add(history);
});
},
addSelectedHistories: () {
//TODO build your fun herr
// widget.addSelectedHistories();
},
isEntityListSelected: (master) =>
isEntityListSelected(master),
)
: null),
SizedBox( SizedBox(
height: 15.0, height: 15.0,
), ),

@ -40,7 +40,7 @@ class EntityListCheckboxSearchWidget extends StatefulWidget {
class _EntityListCheckboxSearchWidgetState class _EntityListCheckboxSearchWidgetState
extends State<EntityListCheckboxSearchWidget> { extends State<EntityListCheckboxSearchWidget> {
int selectedType = 1; int selectedType = 0;
int typeUrgent; int typeUrgent;
int typeRegular; int typeRegular;
@ -133,7 +133,7 @@ class _EntityListCheckboxSearchWidgetState
.orderType), .orderType),
Radio( Radio(
activeColor: Color(0xFFB9382C), activeColor: Color(0xFFB9382C),
value: 1, value: 0,
groupValue: selectedType, groupValue: selectedType,
onChanged: (value) { onChanged: (value) {
historyInfo.type = historyInfo.type =
@ -148,7 +148,7 @@ class _EntityListCheckboxSearchWidgetState
Radio( Radio(
activeColor: Color(0xFFB9382C), activeColor: Color(0xFFB9382C),
groupValue: selectedType, groupValue: selectedType,
value: 0, value: 1,
onChanged: (value) { onChanged: (value) {
historyInfo.type = historyInfo.type =
setSelectedType(value) setSelectedType(value)

@ -0,0 +1,171 @@
import 'package:doctor_app_flutter/core/enum/viewstate.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/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.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:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ProcedureListWidget extends StatefulWidget {
final ProcedureViewModel model;
final Function addSelectedHistories;
final Function(EntityList) removeHistory;
final Function(EntityList) addHistory;
final Function(EntityList) addRemarks;
final bool Function(EntityList) isEntityListSelected;
final List<EntityList> masterList;
ProcedureListWidget(
{Key key,
this.model,
this.addSelectedHistories,
this.removeHistory,
this.masterList,
this.addHistory,
this.isEntityListSelected,
this.addRemarks})
: super(key: key);
@override
_ProcedureListWidgetState createState() => _ProcedureListWidgetState();
}
class _ProcedureListWidgetState extends State<ProcedureListWidget> {
int selectedType = 0;
int typeUrgent;
int typeRegular;
setSelectedType(int val) {
setState(() {
selectedType = val;
});
}
List<EntityList> items = List();
List<String> remarksList = List();
List<int> typeList = List();
@override
void initState() {
items.addAll(widget.masterList);
super.initState();
}
TextEditingController remarksController = TextEditingController();
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
NetworkBaseView(
baseViewModel: widget.model,
child: Container(
height: MediaQuery.of(context).size.height * 0.55,
child: Center(
child: Container(
margin: EdgeInsets.only(top: 15),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: Colors.white),
child: ListView(
children: [
TextFields(
hintText: TranslationBase.of(context).searchProcedures,
suffixIcon: EvaIcons.search,
onChanged: (value) {
filterSearchResults(value);
},
),
SizedBox(
height: 15,
),
items.length != 0
? Column(
children: items.map((historyInfo) {
return Column(
children: [
Row(
children: [
Checkbox(
value: widget.isEntityListSelected(
historyInfo),
activeColor: Colors.red[800],
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: Texts(
historyInfo.procedureName,
variant: "bodyText",
bold: true,
color: Colors.black),
),
),
],
),
DividerWithSpacesAround(),
],
);
}).toList(),
)
: Center(
child: Container(
child: AppText(
"There's no procedures for this category",
color: Color(0xFFB9382C)),
),
)
],
),
)),
),
),
SizedBox(
height: 10,
),
],
),
);
}
void filterSearchResults(String query) {
List<EntityList> dummySearchList = List();
dummySearchList.addAll(widget.masterList);
if (query.isNotEmpty) {
List<EntityList> dummyListData = List();
dummySearchList.forEach((item) {
if (item.procedureName.toLowerCase().contains(query.toLowerCase())) {
dummyListData.add(item);
}
});
setState(() {
items.clear();
items.addAll(dummyListData);
});
return;
} else {
setState(() {
items.clear();
items.addAll(widget.masterList);
});
}
}
}

@ -1,3 +1,4 @@
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_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/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart';
@ -235,7 +236,7 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
.entityList[ .entityList[
index] index]
.orderType == .orderType ==
0 1
? Color( ? Color(
0xFFB9382C) 0xFFB9382C)
: Colors : Colors
@ -254,7 +255,7 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
.entityList[ .entityList[
index] index]
.orderType == .orderType ==
0 1
? Color( ? Color(
0xFFB9382C) 0xFFB9382C)
: Colors : Colors
@ -274,7 +275,7 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
.entityList[ .entityList[
index] index]
.orderType == .orderType ==
0 1
? Color( ? Color(
0xFFB9382C) 0xFFB9382C)
: Colors : Colors
@ -330,13 +331,13 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
Expanded( Expanded(
child: AppText( child: AppText(
model.procedureList[0].entityList[index].orderType == model.procedureList[0].entityList[index].orderType ==
1 0
? 'Routine' ? 'Routine'
: 'Urgent', : 'Urgent',
fontSize: fontSize:
13.5, 13.5,
color: model.procedureList[0].entityList[index].orderType == color: model.procedureList[0].entityList[index].orderType ==
0 1
? Color(0xFFB9382C) ? Color(0xFFB9382C)
: Colors.green), : Colors.green),
), ),
@ -459,43 +460,59 @@ class _ProcedureScreenState extends State<ProcedureScreen> {
onTap: () { onTap: () {
// model // model
// .updateProcedure(); // .updateProcedure();
updateProcedureForm( if (model
context, .procedureList[
model: 0]
model, .entityList[
orderNo: model index]
.procedureList[ .categoryID ==
0] 02 ||
.entityList[ model
index] .procedureList[0]
.orderNo, .entityList[index]
remarks: model .categoryID ==
.procedureList[ 03) {
0] updateProcedureForm(
.entityList[ context,
index] model:
.remarks, model,
procedureName: model orderNo: model
.procedureList[ .procedureList[
0] 0]
.entityList[ .entityList[
index] index]
.procedureName, .orderNo,
patient: remarks: model
patient, .procedureList[
procedureId: model 0]
.procedureList[ .entityList[
0] index]
.entityList[ .remarks,
index] procedureName: model
.procedureId, .procedureList[
categoreId: model 0]
.procedureList[ .entityList[
0] index]
.entityList[ .procedureName,
index] patient:
.categoryID patient,
.toString()); procedureId: model
.procedureList[
0]
.entityList[
index]
.procedureId,
categoreId: model
.procedureList[
0]
.entityList[
index]
.categoryID
.toString());
} else {
helpers.showErrorToast(
'You cant Update this Procedure');
}
}, },
) )
], ],

@ -8,6 +8,7 @@ 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/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/procedures/entity_list_checkbox_search_widget.dart'; import 'package:doctor_app_flutter/screens/procedures/entity_list_checkbox_search_widget.dart';
import 'package:doctor_app_flutter/screens/procedures/entity_list_procedure_widget.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
@ -79,6 +80,11 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
}); });
} }
void initState() {
super.initState();
widget.remarksController.text = widget.remarks;
}
List<EntityList> entityList = List(); List<EntityList> entityList = List();
dynamic selectedCategory; dynamic selectedCategory;
@override @override
@ -177,74 +183,108 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
), ),
if (widget.model.categoriesList.length != 0) if (widget.model.categoriesList.length != 0)
NetworkBaseView( NetworkBaseView(
baseViewModel: model, baseViewModel: model,
child: EntityListCheckboxSearchWidget( child: selectedCategory != null
model: widget.model, ? selectedCategory['categoryId'] ==
masterList: widget 02 ||
.model.categoriesList[0].entityList, selectedCategory[
removeHistory: (item) { 'categoryId'] ==
setState(() { 03
entityList.remove(item); ? EntityListCheckboxSearchWidget(
}); model: widget.model,
}, masterList: widget
addHistory: (history) { .model
setState(() { .categoriesList[0]
entityList.add(history); .entityList,
}); removeHistory: (item) {
}, setState(() {
addSelectedHistories: () { entityList.remove(item);
//TODO build your fun herr });
// widget.addSelectedHistories(); },
}, addHistory: (history) {
isEntityListSelected: (master) => setState(() {
isEntityListSelected(master), entityList.add(history);
), });
},
addSelectedHistories: () {
//TODO build your fun herr
// widget.addSelectedHistories();
},
isEntityListSelected:
(master) =>
isEntityListSelected(
master),
)
: ProcedureListWidget(
model: widget.model,
masterList: widget
.model
.categoriesList[0]
.entityList,
removeHistory: (item) {
setState(() {
entityList.remove(item);
});
},
addHistory: (history) {
setState(() {
entityList.add(history);
});
},
addSelectedHistories: () {
//TODO build your fun herr
// widget.addSelectedHistories();
},
isEntityListSelected:
(master) =>
isEntityListSelected(
master),
)
: null),
Container(
child: Row(
children: [
AppText(
TranslationBase.of(context).orderType),
Radio(
activeColor: Color(0xFFB9382C),
value: 0,
groupValue: selectedType,
onChanged: (value) {
setSelectedType(value);
},
),
Text(TranslationBase.of(context).urgent),
Radio(
activeColor: Color(0xFFB9382C),
groupValue: selectedType,
value: 1,
onChanged: (value) {
setSelectedType(value);
},
),
Text('routine'),
],
),
),
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,
maxLines: 3,
minLines: 2,
onChanged: (value) {},
), ),
// Container( ),
// child: Row(
// children: [
// AppText(
// TranslationBase.of(context).orderType),
// Radio(
// activeColor: Color(0xFFB9382C),
// value: 0,
// groupValue: selectedType,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text(TranslationBase.of(context).urgent),
// Radio(
// activeColor: Color(0xFFB9382C),
// groupValue: selectedType,
// value: 1,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text('routine'),
// ],
// ),
// ),
// 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(
// hintText: widget.remarks,
// fontSize: 15.0,
// controller: widget.remarksController,
// maxLines: 3,
// minLines: 2,
// onChanged: (value) {},
// ),
// ),
SizedBox( SizedBox(
height: 50.0, height: 50.0,
), ),
@ -259,11 +299,11 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
.updateProcedure .updateProcedure
.toUpperCase(), .toUpperCase(),
onPressed: () { onPressed: () {
if (entityList.isEmpty == true) { // if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast( // DrAppToastMsg.showErrorToast(
"Fill the mandatory procedure details"); // "Fill the mandatory procedure details");
return; // return;
} // }
Navigator.pop(context); Navigator.pop(context);
updateProcedure( updateProcedure(
orderNo: widget.orderNo, orderNo: widget.orderNo,
@ -315,20 +355,32 @@ class _UpdateProcedureWidgetState extends State<UpdateProcedureWidget> {
updateProcedureReqModel.lineItemNo = 1; updateProcedureReqModel.lineItemNo = 1;
updateProcedureReqModel.orderNo = orderNo; updateProcedureReqModel.orderNo = orderNo;
entityList.forEach((element) { if (entityList.isNotEmpty) {
entityList.forEach((element) {
controls.add(
Controls(code: "remarks", controlValue: element.remarks ?? remarks),
);
controls.add(
Controls(code: "ordertype", controlValue: '1'),
);
controlsProcedure.procedure = element.procedureId;
controlsProcedure.category = element.categoryID;
controlsProcedure.controls = controls;
});
} else {
controls.add( controls.add(
Controls( Controls(
code: "remarks", code: "remarks", controlValue: remarks.isNotEmpty ? remarks : ""),
controlValue: element.remarks.isNotEmpty ? element.remarks : ""),
); );
controls.add( controls.add(
Controls(code: "ordertype", controlValue: '1'), Controls(code: "ordertype", controlValue: '0'),
); );
}
controlsProcedure.procedure = element.procedureId; controlsProcedure.procedure = procedureId;
controlsProcedure.category = element.categoryID; controlsProcedure.category = categorieId;
controlsProcedure.controls = controls; controlsProcedure.controls = controls;
});
// controlsProcedure.add(ProcedureDetail( // controlsProcedure.add(ProcedureDetail(
// category: categorieId, procedure: procedureId, controls: controls)); // category: categorieId, procedure: procedureId, controls: controls));
updateProcedureReqModel.procedureDetail = controlsProcedure; updateProcedureReqModel.procedureDetail = controlsProcedure;

Loading…
Cancel
Save