Fix Expansion Procedure

merge-requests/678/head
Mohammad Aljammal 5 years ago
parent 0603ea1e40
commit 40b4a83c6b

@ -328,4 +328,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69
COCOAPODS: 1.10.0.rc.1
COCOAPODS: 1.10.1

@ -48,7 +48,8 @@ class BaseAppClient {
if (body['EditedBy'] == '') {
body.remove("EditedBy");
}
body['TokenID'] = token ?? '';
body['TokenID'] = "@dm!n";// token ?? '';
// body['TokenID'] = token ?? '';
String lang = await sharedPref.getString(APP_Language);
if (lang != null && lang == 'ar')
body['LanguageID'] = 1;

@ -4,8 +4,8 @@ const MAX_SMALL_SCREEN = 660;
const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]";
// const BASE_URL = 'https://hmgwebservices.com/';
const BASE_URL = 'https://uat.hmgwebservices.com/';
const BASE_URL = 'https://hmgwebservices.com/';
// const BASE_URL = 'https://uat.hmgwebservices.com/';
const PHARMACY_ITEMS_URL = "Services/Lists.svc/REST/GetPharmcyItems_Region_enh";
const PHARMACY_LIST_URL = "Services/Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL =

@ -115,7 +115,7 @@ class ProcedureViewModel extends BaseViewModel {
tempId = templateId;
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
setState(ViewState.BusyLocal);
await _procedureService.getProcedureTemplateDetails(templateId: templateId);
if (_procedureService.hasError) {
error = _procedureService.error;

@ -0,0 +1,189 @@
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/config.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/model/procedure/procedure_template_details_request_model.dart';
import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.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:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ExpansionProcedure extends StatefulWidget {
final ProcedureTempleteModel procedureTempleteModel;
final ProcedureViewModel model;
final Function(ProcedureTempleteDetailsModel) removeFavProcedure;
final Function(ProcedureTempleteDetailsModel) addFavProcedure;
final Function(ProcedureTempleteDetailsModel) addProceduresRemarks;
final bool Function(ProcedureTempleteModel) isEntityListSelected;
final bool Function(ProcedureTempleteDetailsModel) isEntityFavListSelected;
const ExpansionProcedure(
{Key key,
this.procedureTempleteModel,
this.model,
this.removeFavProcedure,
this.addFavProcedure,
this.addProceduresRemarks,
this.isEntityListSelected,
this.isEntityFavListSelected})
: super(key: key);
@override
_ExpansionProcedureState createState() => _ExpansionProcedureState();
}
class _ExpansionProcedureState extends State<ExpansionProcedure> {
bool _isShowMore = false;
List<ProcedureTempleteDetailsModel> _templateDetailsList = List();
BaseAppClient baseAppClient = BaseAppClient();
@override
Widget build(BuildContext context) {
return Column(
children: [
InkWell(
onTap: () async {
if (!_isShowMore && _templateDetailsList.isEmpty) {
GifLoaderDialogUtils.showMyDialog(context);
await getProcedureTemplateDetails(widget.procedureTempleteModel.templateID);
GifLoaderDialogUtils.hideDialog(context);
}
setState(() {
_isShowMore = !_isShowMore;
});
},
child: Container(
padding: EdgeInsets.all(10.0),
margin: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(5.0),
)),
child: Row(
children: <Widget>[
Expanded(
child: Row(
children: [
Icon(
Icons.folder,
size: 20,
color: Color(0xff575757),
),
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10, vertical: 0),
child: AppText(
"Procedures for " +
widget.procedureTempleteModel.templateName,
fontSize: 16.0,
variant: "bodyText",
bold: true,
color: Color(0xff575757)),
),
),
],
)),
Container(
width: 25,
height: 25,
child: Icon(
_isShowMore
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down,
color: Colors.grey[800],
size: 22,
),
)
],
),
),
),
if (_isShowMore)
AnimatedContainer(
padding: EdgeInsets.all(10.0),
margin: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(5.0),
bottomRight: Radius.circular(5.0),
)),
duration: Duration(milliseconds: 7000),
child: Column(
children:
_templateDetailsList.map((itemProcedure) {
return Container(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
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: 10,
),
],
);
}
getProcedureTemplateDetails(templateId)async {
ProcedureTempleteDetailsRequestModel _procedureTempleteDetailsRequestModel = ProcedureTempleteDetailsRequestModel(templateID: templateId, searchType: 1, patientID: 0);
_templateDetailsList.clear();
await baseAppClient.post(GET_PROCEDURE_TEMPLETE_DETAILS,
onSuccess: (dynamic response, int statusCode) {
response['HIS_ProcedureTemplateDetailsList'].forEach((template) {
setState(() {
_templateDetailsList.add(ProcedureTempleteDetailsModel.fromJson(template));
});
});
}, onFailure: (String error, int statusCode) {
DrAppToastMsg.showErrorToast(error);
}, body: _procedureTempleteDetailsRequestModel.toJson());
}
}

@ -20,15 +20,18 @@ class AddFavouriteProcedure extends StatefulWidget {
const AddFavouriteProcedure({Key key, this.model, this.patient})
: super(key: key);
@override
_AddFavouriteProcedureState createState() => _AddFavouriteProcedureState();
}
class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
_AddFavouriteProcedureState({this.patient, this.model});
ProcedureViewModel model;
PatiantInformtion patient;
List<ProcedureTempleteDetailsModel> entityList = List();
@override
Widget build(BuildContext context) {
return BaseView<ProcedureViewModel>(
@ -49,12 +52,7 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
Expanded(
child: NetworkBaseView(
baseViewModel: model,
child:
// selectedCategory != null
// ? selectedCategory['categoryId'] == 02 ||
// selectedCategory['categoryId'] == 03
// ?
EntityListCheckboxSearchFavProceduresWidget(
child: EntityListCheckboxSearchFavProceduresWidget(
model: widget.model,
masterList: widget.model.procedureTemplate,
removeFavProcedure: (item) {
@ -73,30 +71,7 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
},
isEntityFavListSelected: (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(
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5),
@ -108,8 +83,6 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
color: Color(0xff359846),
fontWeight: FontWeight.w700,
onPressed: () {
//print(entityList.toString());
onPressed:
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
@ -119,12 +92,6 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
}
Navigator.pop(context);
// postProcedure(
// orderType: selectedType.toString(),
// entityList: entityList,
// patient: patient,
// model: widget.model,
// remarks: remarksController.text);
},
),
],
@ -138,7 +105,7 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
bool isEntityListSelected(ProcedureTempleteDetailsModel masterKey) {
Iterable<ProcedureTempleteDetailsModel> history = entityList
.where((element) => masterKey.templateID == element.templateID);
.where((element) => masterKey.templateID == element.templateID && masterKey.procedureName == element.procedureName);
if (history.length > 0) {
return true;
}

@ -11,6 +11,8 @@ import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'ExpansionProcedure.dart';
class EntityListCheckboxSearchFavProceduresWidget extends StatefulWidget {
final ProcedureViewModel model;
final Function addSelectedHistories;
@ -70,6 +72,7 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
}
TextEditingController remarksController = TextEditingController();
@override
Widget build(BuildContext context) {
return Container(
@ -102,116 +105,14 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
items.length != 0
? Column(
children: items.map((historyInfo) {
return Column(
children: [
ExpansionTile(
title: InkWell(
onTap: () {
widget.model
.getProcedureTemplateDetails(
templateId:
historyInfo.templateID);
},
child: Row(
children: [
Icon(
Icons.folder,
size: 20,
color: Color(0xff575757),
),
Expanded(
child: Padding(
padding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 0),
child: AppText(
"Procedures for " +
historyInfo.templateName,
fontSize: 16.0,
variant: "bodyText",
bold: true,
color: Color(0xff575757)),
),
),
],
),
),
children: [
Column(
children: widget
.model.procedureTemplateDetails
.map((itemProcedure) {
return Container(
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
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,
),
DividerWithSpacesAround(),
],
),
],
return ExpansionProcedure(
procedureTempleteModel: historyInfo,
model: widget.model,
removeFavProcedure: widget.removeFavProcedure,
addFavProcedure: widget.addFavProcedure,
addProceduresRemarks: widget.addProceduresRemarks,
isEntityListSelected: widget.isEntityListSelected,
isEntityFavListSelected: widget.isEntityFavListSelected,
);
}).toList(),
)

@ -629,7 +629,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0-nullsafety.4"
version: "1.3.0-nullsafety.3"
mime:
dependency: transitive
description:
@ -921,7 +921,7 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0-nullsafety.2"
version: "1.10.0-nullsafety.1"
sticky_headers:
dependency: "direct main"
description:
@ -1119,5 +1119,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.10.0 <=2.11.0-213.1.beta"
dart: ">=2.10.0 <2.11.0"
flutter: ">=1.22.0 <2.0.0"

Loading…
Cancel
Save