bug fixing

merge-requests/309/head
hussam al-habibeh 5 years ago
parent 8bf578082b
commit d20e83faa5

@ -573,105 +573,74 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(height: spaceBetweenTextFileds),
if (model.patientAssessmentList.isNotEmpty) if (model.patientAssessmentList.isNotEmpty)
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
child: InkWell( width: double.infinity,
onTap: indicationList != null child: Row(
? () { children: [
Helpers.hideKeyboard(context); Container(
ListSelectDialog dialog = width: MediaQuery.of(context)
ListSelectDialog( .size
list: indicationList, .width *
attributeName: 'name', 0.29,
attributeValueId: 'id', child: InkWell(
okText: TranslationBase.of( onTap: indicationList != null
context) ? () {
.ok, Helpers.hideKeyboard(
okFunction: (selectedValue) { context);
setState(() { }
indication = : null,
selectedValue; child: TextField(
}); decoration:
}, textFieldSelectorDecoration(
); model
showDialog( .patientAssessmentList[
barrierDismissible: false, 0]
context: context, .icdCode10ID
builder: .toString(),
(BuildContext context) { indication != null
return dialog; ? indication['name']
}, : null,
); true),
} enabled: true,
: null, readOnly: true,
child: TextField( ),
decoration: ),
textFieldSelectorDecoration( ),
model.patientAssessmentList[0] Container(
.icdCode10ID width: MediaQuery.of(context)
.toString(), .size
indication != null .width *
? indication['name'] 0.65,
: null, child: InkWell(
true), onTap: indicationList != null
enabled: true, ? () {
readOnly: true, Helpers.hideKeyboard(
), context);
}
: null,
child: TextField(
maxLines: 5,
decoration:
textFieldSelectorDecoration(
model
.patientAssessmentList[
0]
.asciiDesc
.toString(),
indication != null
? indication['name']
: null,
true),
enabled: true,
readOnly: true,
),
),
),
],
), ),
), ),
//model.patientAssessmentList.forEach((element) { }).
// Column(
// children: model.patientAssessmentList
// .map((element) {
// return Container(
// height: screenSize.height * 0.070,
// child: InkWell(
// onTap: indicationList != null
// ? () {
// ListSelectDialog dialog =
// ListSelectDialog(
// list: indicationList,
// attributeName: 'name',
// attributeValueId: 'id',
// okText: TranslationBase.of(
// context)
// .ok,
// okFunction: (selectedValue) {
// setState(() {
// indication =
// selectedValue;
// });
// },
// );
// showDialog(
// barrierDismissible: false,
// context: context,
// builder:
// (BuildContext context) {
// return dialog;
// },
// );
// }
// : null,
// child: TextField(
// decoration:
// textFieldSelectorDecoration(
// element.icdCode10ID
// .toString(),
// indication != null
// ? indication['name']
// : null,
// true),
// enabled: true,
// readOnly: true,
// ),
// ),
// );
// }).toList(),
// ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(height: spaceBetweenTextFileds),
Container( Container(
height: screenSize.height * 0.070, height: screenSize.height * 0.070,
@ -755,13 +724,6 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
.instruction, .instruction,
controller: instructionController, controller: instructionController,
//keyboardType: TextInputType.number, //keyboardType: TextInputType.number,
validator: (value) {
if (value.isEmpty)
return TranslationBase.of(context)
.emptyMessage;
else
return null;
},
), ),
), ),
SizedBox(height: spaceBetweenTextFileds), SizedBox(height: spaceBetweenTextFileds),
@ -795,6 +757,13 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
"1000 is the MAX for the strength"); "1000 is the MAX for the strength");
return; return;
} }
if (int.parse(
strengthController.text) ==
0) {
DrAppToastMsg.showErrorToast(
"Streangth can't be zero");
return;
}
if (formKey.currentState if (formKey.currentState
.validate()) { .validate()) {

@ -8,6 +8,7 @@ import 'package:doctor_app_flutter/core/viewModel/medicine_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/prescription_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/util/date-utils.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/helpers.dart'; import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
@ -36,6 +37,7 @@ class UpdatePrescriptionForm extends StatefulWidget {
final String startDate; final String startDate;
final String frequency; final String frequency;
final String drugNameGeneric; final String drugNameGeneric;
final PrescriptionViewModel model; final PrescriptionViewModel model;
UpdatePrescriptionForm( UpdatePrescriptionForm(
@ -71,14 +73,44 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
GetMedicationResponseModel newSelectedMedication; GetMedicationResponseModel newSelectedMedication;
GlobalKey key = GlobalKey key =
new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>(); new GlobalKey<AutoCompleteTextFieldState<GetMedicationResponseModel>>();
List<dynamic> indicationList;
dynamic indication;
DateTime selectedDate;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
indicationList = List();
dynamic indication1 = {"id": 545, "name": "Gingival Hyperplasia"};
dynamic indication2 = {"id": 546, "name": "Mild Drowsiness"};
dynamic indication3 = {"id": 547, "name": "Hypertrichosis"};
dynamic indication4 = {"id": 548, "name": "Mild Dizziness"};
dynamic indication5 = {"id": 549, "name": "Enlargement of Facial Features"};
dynamic indication6 = {
"id": 550,
"name": "Phenytoin Hypersensitivity Syndrome"
};
dynamic indication7 = {"id": 551, "name": "Asterixis"};
dynamic indication8 = {"id": 552, "name": "Bullous Dermatitis"};
dynamic indication9 = {"id": 554, "name": "Purpuric Dermatitis"};
dynamic indication10 = {"id": 555, "name": "Systemic Lupus Erythematosus"};
indicationList.add(indication1);
indicationList.add(indication2);
indicationList.add(indication3);
indicationList.add(indication4);
indicationList.add(indication5);
indicationList.add(indication6);
indicationList.add(indication7);
indicationList.add(indication8);
indicationList.add(indication9);
indicationList.add(indication10);
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final screenSize = MediaQuery.of(context).size;
return StatefulBuilder(builder: return StatefulBuilder(builder:
(BuildContext context, StateSetter setState /*You can rename this!*/) { (BuildContext context, StateSetter setState /*You can rename this!*/) {
return BaseView<MedicineViewModel>( return BaseView<MedicineViewModel>(
@ -105,17 +137,17 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
NetworkBaseView( NetworkBaseView(
baseViewModel: model, baseViewModel: model,
child: GestureDetector( child: GestureDetector(
onTap: (){ onTap: () {
FocusScope.of(context).requestFocus(new FocusNode()); FocusScope.of(context).requestFocus(new FocusNode());
}, },
child: DraggableScrollableSheet( child: DraggableScrollableSheet(
initialChildSize: 0.95, initialChildSize: 0.98,
maxChildSize: 0.99, maxChildSize: 0.99,
minChildSize: 0.6, minChildSize: 0.6,
builder: builder:
(BuildContext context, ScrollController scrollController) { (BuildContext context, ScrollController scrollController) {
return Container( return Container(
height: MediaQuery.of(context).size.height * 1.3, height: MediaQuery.of(context).size.height * 2.5,
child: Form( child: Form(
child: Padding( child: Padding(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
@ -211,15 +243,18 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
child: Row( child: Row(
children: [ children: [
Container( Container(
width: width: MediaQuery.of(context)
MediaQuery.of(context).size.width * .size
0.4900, .width *
height: 0.4900,
MediaQuery.of(context).size.height * height: MediaQuery.of(context)
0.55, .size
.height *
0.55,
child: TextFields( child: TextFields(
inputFormatters: [ inputFormatters: [
LengthLimitingTextInputFormatter(4), LengthLimitingTextInputFormatter(
4),
WhitelistingTextInputFormatter WhitelistingTextInputFormatter
.digitsOnly .digitsOnly
], ],
@ -251,40 +286,49 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
width: 10.0, width: 10.0,
), ),
Container( Container(
width: width: MediaQuery.of(context)
MediaQuery.of(context).size.width * .size
0.3700, .width *
0.3700,
child: InkWell( child: InkWell(
onTap: model.medicationStrengthList != onTap:
null model.medicationStrengthList !=
? () { null
Helpers.hideKeyboard(context); ? () {
ListSelectDialog dialog = Helpers.hideKeyboard(
ListSelectDialog( context);
list: model ListSelectDialog
.medicationStrengthList, dialog =
attributeName: 'nameEn', ListSelectDialog(
attributeValueId: 'id', list: model
okText: TranslationBase.of( .medicationStrengthList,
context) attributeName:
.ok, 'nameEn',
okFunction: attributeValueId:
(selectedValue) { 'id',
setState(() { okText:
units = selectedValue; TranslationBase.of(
}); context)
}, .ok,
); okFunction:
showDialog( (selectedValue) {
barrierDismissible: false, setState(() {
context: context, units =
builder: selectedValue;
(BuildContext context) { });
return dialog; },
}, );
); showDialog(
} barrierDismissible:
: null, false,
context: context,
builder: (BuildContext
context) {
return dialog;
},
);
}
: null,
child: TextField( child: TextField(
decoration: decoration:
textFieldSelectorDecoration( textFieldSelectorDecoration(
@ -309,8 +353,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
child: InkWell( child: InkWell(
onTap: model.medicationRouteList != null onTap: model.medicationRouteList != null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(context);
ListSelectDialog dialog = ListSelectDialog dialog =
ListSelectDialog( ListSelectDialog(
list: model.medicationRouteList, list: model.medicationRouteList,
attributeName: 'nameEn', attributeName: 'nameEn',
@ -330,7 +374,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: (BuildContext context) { builder:
(BuildContext context) {
return dialog; return dialog;
}, },
); );
@ -354,13 +399,14 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
height: MediaQuery.of(context).size.height * height: MediaQuery.of(context).size.height *
0.070, 0.070,
child: InkWell( child: InkWell(
onTap: model.medicationDoseTimeList != null onTap: model.medicationDoseTimeList !=
null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(context);
ListSelectDialog dialog = ListSelectDialog dialog =
ListSelectDialog( ListSelectDialog(
list: list: model
model.medicationDoseTimeList, .medicationDoseTimeList,
attributeName: 'nameEn', attributeName: 'nameEn',
attributeValueId: 'id', attributeValueId: 'id',
okText: okText:
@ -375,7 +421,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: (BuildContext context) { builder:
(BuildContext context) {
return dialog; return dialog;
}, },
); );
@ -383,7 +430,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration: textFieldSelectorDecoration(
TranslationBase.of(context).doseTime, TranslationBase.of(context)
.doseTime,
doseTime != null doseTime != null
? doseTime['nameEn'] ? doseTime['nameEn']
: null, : null,
@ -399,13 +447,14 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
height: MediaQuery.of(context).size.height * height: MediaQuery.of(context).size.height *
0.070, 0.070,
child: InkWell( child: InkWell(
onTap: model.medicationFrequencyList != null onTap: model.medicationFrequencyList !=
null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(context);
ListSelectDialog dialog = ListSelectDialog dialog =
ListSelectDialog( ListSelectDialog(
list: list: model
model.medicationFrequencyList, .medicationFrequencyList,
attributeName: 'nameEn', attributeName: 'nameEn',
attributeValueId: 'id', attributeValueId: 'id',
okText: okText:
@ -421,7 +470,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: (BuildContext context) { builder:
(BuildContext context) {
return dialog; return dialog;
}, },
); );
@ -429,7 +479,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration: textFieldSelectorDecoration(
TranslationBase.of(context).frequency, TranslationBase.of(context)
.frequency,
frequencyUpdate != null frequencyUpdate != null
? frequencyUpdate['nameEn'] ? frequencyUpdate['nameEn']
: null, : null,
@ -445,13 +496,14 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
height: MediaQuery.of(context).size.height * height: MediaQuery.of(context).size.height *
0.070, 0.070,
child: InkWell( child: InkWell(
onTap: model.medicationDurationList != null onTap: model.medicationDurationList !=
null
? () { ? () {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(context);
ListSelectDialog dialog = ListSelectDialog dialog =
ListSelectDialog( ListSelectDialog(
list: list: model
model.medicationDurationList, .medicationDurationList,
attributeName: 'nameEn', attributeName: 'nameEn',
attributeValueId: 'id', attributeValueId: 'id',
okText: okText:
@ -467,7 +519,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: (BuildContext context) { builder:
(BuildContext context) {
return dialog; return dialog;
}, },
); );
@ -475,7 +528,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
: null, : null,
child: TextField( child: TextField(
decoration: textFieldSelectorDecoration( decoration: textFieldSelectorDecoration(
TranslationBase.of(context).duration, TranslationBase.of(context)
.duration,
updatedDuration != null updatedDuration != null
? updatedDuration['nameEn'] ? updatedDuration['nameEn']
.toString() .toString()
@ -488,6 +542,100 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
SizedBox( SizedBox(
height: 12.0, height: 12.0,
), ),
Container(
height: screenSize.height * 0.070,
width: double.infinity,
child: Row(
children: [
Container(
width: MediaQuery.of(context)
.size
.width *
0.29,
child: InkWell(
onTap: indicationList != null
? () {
Helpers.hideKeyboard(
context);
}
: null,
child: TextField(
decoration:
textFieldSelectorDecoration(
model
.patientAssessmentList[
0]
.icdCode10ID
.toString(),
indication != null
? indication['name']
: null,
true),
enabled: true,
readOnly: true,
),
),
),
Container(
width: MediaQuery.of(context)
.size
.width *
0.61,
child: InkWell(
onTap: indicationList != null
? () {
Helpers.hideKeyboard(
context);
}
: null,
child: TextField(
maxLines: 3,
decoration:
textFieldSelectorDecoration(
model
.patientAssessmentList[
0]
.asciiDesc
.toString(),
indication != null
? indication['name']
: null,
true),
enabled: true,
readOnly: true,
),
),
),
],
),
),
SizedBox(
height: 12.0,
),
Container(
height: screenSize.height * 0.070,
child: InkWell(
onTap: () =>
selectDate(context, widget.model),
child: TextField(
decoration:
Helpers.textFieldSelectorDecoration(
widget.startDate,
selectedDate != null
? "${DateUtils.convertStringToDateFormat(selectedDate.toString(), "yyyy-MM-dd")}"
: null,
true,
suffixIcon: Icon(
Icons.calendar_today,
color: Colors.black,
)),
enabled: false,
),
),
),
SizedBox(
height: 12.0,
),
Container( Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
@ -503,11 +651,11 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
), ),
), ),
SizedBox( SizedBox(
height: 12.0, height: 10.0,
), ),
SizedBox( SizedBox(
height: height: MediaQuery.of(context).size.height *
MediaQuery.of(context).size.height * 0.12, 0.08,
), ),
Container( Container(
margin: EdgeInsets.all( margin: EdgeInsets.all(
@ -516,19 +664,22 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
alignment: WrapAlignment.center, alignment: WrapAlignment.center,
children: <Widget>[ children: <Widget>[
AppButton( AppButton(
title: title: 'update prescription'
'update prescription'.toUpperCase(), .toUpperCase(),
onPressed: () { onPressed: () {
updatePrescription( updatePrescription(
newStartDate: selectedDate,
newDoseStreangth: newDoseStreangth:
strengthController strengthController
.text.isNotEmpty .text.isNotEmpty
? strengthController.text ? strengthController
.text
: widget.doseStreangth, : widget.doseStreangth,
newUnit: units != newUnit:
null units !=
? units['id'].toString() null
: widget.doseUnit, ? units['id'].toString()
: widget.doseUnit,
doseUnit: widget.doseUnit, doseUnit: widget.doseUnit,
doseStreangth: widget doseStreangth: widget
.doseStreangth, .doseStreangth,
@ -582,6 +733,24 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
}); });
} }
selectDate(BuildContext context, PrescriptionViewModel model) async {
Helpers.hideKeyboard(context);
DateTime selectedDate;
selectedDate = DateTime.now();
final DateTime picked = await showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime.now(),
lastDate: DateTime(2040),
initialEntryMode: DatePickerEntryMode.calendar,
);
if (picked != null && picked != selectedDate) {
setState(() {
this.selectedDate = picked;
});
}
}
InputDecoration textFieldSelectorDecoration( InputDecoration textFieldSelectorDecoration(
String hintText, String selectedText, bool isDropDown, String hintText, String selectedText, bool isDropDown,
{Icon suffixIcon}) { {Icon suffixIcon}) {
@ -626,6 +795,7 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
String route, String route,
String routeId, String routeId,
String startDate, String startDate,
DateTime newStartDate,
String doseUnit, String doseUnit,
String doseStreangth, String doseStreangth,
String newDoseStreangth, String newDoseStreangth,
@ -664,7 +834,8 @@ class _UpdatePrescriptionFormState extends State<UpdatePrescriptionForm> {
duration: newDuration.isNotEmpty duration: newDuration.isNotEmpty
? int.parse(newDuration) ? int.parse(newDuration)
: int.parse(duration), : int.parse(duration),
doseStartDate: startDate)); doseStartDate:
newStartDate != null ? newStartDate.toIso8601String() : startDate));
updatePrescriptionReqModel.prescriptionRequestModel = sss; updatePrescriptionReqModel.prescriptionRequestModel = sss;
//postProcedureReqModel.procedures = controlsProcedure; //postProcedureReqModel.procedures = controlsProcedure;

Loading…
Cancel
Save