From cd94b835b54e74bc200dd3de260e29e8a26ee28a Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Thu, 11 Feb 2021 17:32:30 +0200 Subject: [PATCH 1/3] bug fixing --- lib/screens/medical-file/medical_file_details.dart | 4 ++-- lib/screens/prescription/add_prescription_form.dart | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/screens/medical-file/medical_file_details.dart b/lib/screens/medical-file/medical_file_details.dart index a148610b..431342eb 100644 --- a/lib/screens/medical-file/medical_file_details.dart +++ b/lib/screens/medical-file/medical_file_details.dart @@ -589,7 +589,7 @@ class _MedicalFileDetailsState extends State { ], ), bodyWidget: ListView.builder( - //physics: , + physics: NeverScrollableScrollPhysics(), scrollDirection: Axis.vertical, shrinkWrap: true, itemCount: model @@ -763,7 +763,7 @@ class _MedicalFileDetailsState extends State { ], ), bodyWidget: ListView.builder( - //physics: , + physics: NeverScrollableScrollPhysics(), scrollDirection: Axis.vertical, shrinkWrap: true, itemCount: model diff --git a/lib/screens/prescription/add_prescription_form.dart b/lib/screens/prescription/add_prescription_form.dart index 0b9750fc..1a6c6e26 100644 --- a/lib/screens/prescription/add_prescription_form.dart +++ b/lib/screens/prescription/add_prescription_form.dart @@ -752,6 +752,13 @@ class _PrescriptionFormWidgetState extends State { "Please Fill All Fields"); return; } + if (int.parse( + strengthController.text) > + 1000) { + DrAppToastMsg.showErrorToast( + "1000 is the MAX for the strength"); + return; + } if (formKey.currentState.validate()) { Navigator.pop(context); From 8bf578082b17cf8915796b9b51653a97807a4916 Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Thu, 11 Feb 2021 17:46:42 +0200 Subject: [PATCH 2/3] bug fixing --- .../prescription/add_prescription_form.dart | 368 ++++++++++-------- 1 file changed, 198 insertions(+), 170 deletions(-) diff --git a/lib/screens/prescription/add_prescription_form.dart b/lib/screens/prescription/add_prescription_form.dart index efbdcfd5..6ecf37d3 100644 --- a/lib/screens/prescription/add_prescription_form.dart +++ b/lib/screens/prescription/add_prescription_form.dart @@ -210,20 +210,21 @@ class _PrescriptionFormWidgetState extends State { NetworkBaseView( baseViewModel: model, child: GestureDetector( - onTap: (){ + onTap: () { FocusScope.of(context).requestFocus(new FocusNode()); }, child: DraggableScrollableSheet( initialChildSize: 0.90, maxChildSize: 0.90, minChildSize: 0.9, - builder: (BuildContext context, ScrollController scrollController) { + builder: + (BuildContext context, ScrollController scrollController) { return SingleChildScrollView( child: Container( height: 1010, child: Padding( - padding: - EdgeInsets.symmetric(horizontal: 12.0, vertical: 10.0), + padding: EdgeInsets.symmetric( + horizontal: 12.0, vertical: 10.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, //mainAxisAlignment: MainAxisAlignment.spaceEvenly, @@ -247,8 +248,8 @@ class _PrescriptionFormWidgetState extends State { child: InkWell( onTap: model.allMedicationList != null ? () { - Helpers.hideKeyboard(context); - setState(() { + Helpers.hideKeyboard(context); + setState(() { _selectedMedication = null; }); } @@ -267,8 +268,8 @@ class _PrescriptionFormWidgetState extends State { true, ), itemSubmitted: (item) => setState( - () => - _selectedMedication = item), + () => _selectedMedication = + item), key: key, suggestions: model.allMedicationList, @@ -278,19 +279,18 @@ class _PrescriptionFormWidgetState extends State { child: Texts(suggestion .description + '/' + - suggestion.genericName), + suggestion + .genericName), padding: EdgeInsets.all(8.0)), itemSorter: (a, b) => 1, itemFilter: (suggestion, input) => - suggestion.genericName - .toLowerCase() - .startsWith( - input.toLowerCase()) || + suggestion.genericName.toLowerCase().startsWith( + input.toLowerCase()) || suggestion.description .toLowerCase() - .startsWith( - input.toLowerCase()) || + .startsWith(input + .toLowerCase()) || suggestion.keywords .toLowerCase() .startsWith( @@ -338,17 +338,20 @@ class _PrescriptionFormWidgetState extends State { child: Row( children: [ Container( - width: - MediaQuery.of(context).size.width * - 0.550, + width: MediaQuery.of(context) + .size + .width * + 0.550, child: TextFields( inputFormatters: [ - LengthLimitingTextInputFormatter(4), + LengthLimitingTextInputFormatter( + 4), WhitelistingTextInputFormatter .digitsOnly ], - hintText: TranslationBase.of(context) - .strength, + hintText: + TranslationBase.of(context) + .strength, controller: strengthController, keyboardType: TextInputType.number, onChanged: (String value) { @@ -375,40 +378,49 @@ class _PrescriptionFormWidgetState extends State { width: 10.0, ), Container( - width: - MediaQuery.of(context).size.width * - 0.350, + width: MediaQuery.of(context) + .size + .width * + 0.350, child: InkWell( - onTap: model.medicationStrengthList != - null - ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = - ListSelectDialog( - list: model - .medicationStrengthList, - attributeName: 'nameEn', - attributeValueId: 'id', - okText: TranslationBase.of( - context) - .ok, - okFunction: - (selectedValue) { - setState(() { - units = selectedValue; - }); - }, - ); - showDialog( - barrierDismissible: false, - context: context, - builder: - (BuildContext context) { - return dialog; - }, - ); - } - : null, + onTap: + model.medicationStrengthList != + null + ? () { + Helpers.hideKeyboard( + context); + ListSelectDialog + dialog = + ListSelectDialog( + list: model + .medicationStrengthList, + attributeName: + 'nameEn', + attributeValueId: + 'id', + okText: + TranslationBase.of( + context) + .ok, + okFunction: + (selectedValue) { + setState(() { + units = + selectedValue; + }); + }, + ); + showDialog( + barrierDismissible: + false, + context: context, + builder: (BuildContext + context) { + return dialog; + }, + ); + } + : null, child: TextField( decoration: textFieldSelectorDecoration( @@ -430,8 +442,8 @@ class _PrescriptionFormWidgetState extends State { child: InkWell( onTap: model.medicationRouteList != null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( list: model.medicationRouteList, attributeName: 'nameEn', @@ -452,7 +464,8 @@ class _PrescriptionFormWidgetState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -473,13 +486,14 @@ class _PrescriptionFormWidgetState extends State { Container( height: screenSize.height * 0.070, child: InkWell( - onTap: model.medicationFrequencyList != null + onTap: model.medicationFrequencyList != + null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( - list: - model.medicationFrequencyList, + list: model + .medicationFrequencyList, attributeName: 'nameEn', attributeValueId: 'id', okText: @@ -494,7 +508,8 @@ class _PrescriptionFormWidgetState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -502,7 +517,8 @@ class _PrescriptionFormWidgetState extends State { : null, child: TextField( decoration: textFieldSelectorDecoration( - TranslationBase.of(context).frequency, + TranslationBase.of(context) + .frequency, frequency != null ? frequency['nameEn'] : null, @@ -515,13 +531,14 @@ class _PrescriptionFormWidgetState extends State { Container( height: screenSize.height * 0.070, child: InkWell( - onTap: model.medicationDoseTimeList != null + onTap: model.medicationDoseTimeList != + null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( - list: - model.medicationDoseTimeList, + list: model + .medicationDoseTimeList, attributeName: 'nameEn', attributeValueId: 'id', okText: @@ -536,7 +553,8 @@ class _PrescriptionFormWidgetState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -544,7 +562,8 @@ class _PrescriptionFormWidgetState extends State { : null, child: TextField( decoration: textFieldSelectorDecoration( - TranslationBase.of(context).doseTime, + TranslationBase.of(context) + .doseTime, doseTime != null ? doseTime['nameEn'] : null, @@ -561,18 +580,19 @@ class _PrescriptionFormWidgetState extends State { child: InkWell( onTap: indicationList != null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( list: indicationList, attributeName: 'name', attributeValueId: 'id', - okText: - TranslationBase.of(context) - .ok, + okText: TranslationBase.of( + context) + .ok, okFunction: (selectedValue) { setState(() { - indication = selectedValue; + indication = + selectedValue; }); }, ); @@ -587,14 +607,15 @@ class _PrescriptionFormWidgetState extends State { } : null, child: TextField( - decoration: textFieldSelectorDecoration( - model.patientAssessmentList[0] - .icdCode10ID - .toString(), - indication != null - ? indication['name'] - : null, - true), + decoration: + textFieldSelectorDecoration( + model.patientAssessmentList[0] + .icdCode10ID + .toString(), + indication != null + ? indication['name'] + : null, + true), enabled: true, readOnly: true, ), @@ -660,7 +681,8 @@ class _PrescriptionFormWidgetState extends State { child: TextField( decoration: Helpers.textFieldSelectorDecoration( - TranslationBase.of(context).date, + TranslationBase.of(context) + .date, selectedDate != null ? "${DateUtils.convertStringToDateFormat(selectedDate.toString(), "yyyy-MM-dd")}" : null, @@ -677,13 +699,14 @@ class _PrescriptionFormWidgetState extends State { Container( height: screenSize.height * 0.070, child: InkWell( - onTap: model.medicationDurationList != null + onTap: model.medicationDurationList != + null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( - list: - model.medicationDurationList, + list: model + .medicationDurationList, attributeName: 'nameEn', attributeValueId: 'id', okText: @@ -698,7 +721,8 @@ class _PrescriptionFormWidgetState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -706,7 +730,8 @@ class _PrescriptionFormWidgetState extends State { : null, child: TextField( decoration: textFieldSelectorDecoration( - TranslationBase.of(context).duration, + TranslationBase.of(context) + .duration, duration != null ? duration['nameEn'] : null, @@ -726,8 +751,8 @@ class _PrescriptionFormWidgetState extends State { child: TextFields( maxLines: 6, minLines: 4, - hintText: - TranslationBase.of(context).instruction, + hintText: TranslationBase.of(context) + .instruction, controller: instructionController, //keyboardType: TextInputType.number, validator: (value) { @@ -763,90 +788,93 @@ class _PrescriptionFormWidgetState extends State { "Please Fill All Fields"); return; } - if (int.parse( - strengthController.text) > - 1000) { - DrAppToastMsg.showErrorToast( - "1000 is the MAX for the strength"); - return; - } + if (int.parse( + strengthController.text) > + 1000) { + DrAppToastMsg.showErrorToast( + "1000 is the MAX for the strength"); + return; + } - if (formKey.currentState.validate()) { - Navigator.pop(context); - { - // var x = model - // .patientAssessmentList - // .map((value) => - // value.icdCode10ID) - // .toList() - // .join(','); - postProcedure( - icdCode: model - .patientAssessmentList[ - 0] - .icdCode10ID - .isEmpty - ? "test" - : model - .patientAssessmentList[ - 0] - .icdCode10ID - .toString(), - // icdCode: model + if (formKey.currentState + .validate()) { + Navigator.pop(context); + { + // var x = model // .patientAssessmentList - // .map((value) => value - // .icdCode10ID - // .trim()) + // .map((value) => + // value.icdCode10ID) // .toList() - // .join(' '), - dose: strengthController.text, - doseUnit: - units['id'].toString(), - patient: widget.patient, - doseTimeIn: - doseTime['id'].toString(), - model: widget.model, - duration: - duration['id'].toString(), - frequency: - frequency['id'].toString(), - route: route['id'].toString(), - drugId: _selectedMedication - .itemId - .toString(), - strength: - strengthController.text, - indication: - indicationController.text, - instruction: - instructionController.text, - doseTime: selectedDate, - ); + // .join(','); + postProcedure( + icdCode: model + .patientAssessmentList[ + 0] + .icdCode10ID + .isEmpty + ? "test" + : model + .patientAssessmentList[ + 0] + .icdCode10ID + .toString(), + // icdCode: model + // .patientAssessmentList + // .map((value) => value + // .icdCode10ID + // .trim()) + // .toList() + // .join(' '), + dose: strengthController.text, + doseUnit: + units['id'].toString(), + patient: widget.patient, + doseTimeIn: + doseTime['id'].toString(), + model: widget.model, + duration: + duration['id'].toString(), + frequency: frequency['id'] + .toString(), + route: route['id'].toString(), + drugId: _selectedMedication + .itemId + .toString(), + strength: + strengthController.text, + indication: + indicationController.text, + instruction: + instructionController + .text, + doseTime: selectedDate, + ); + } } - } - { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => - // NewPrescriptionScreen()), - // ); - } - }, - ), - ], + { + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => + // NewPrescriptionScreen()), + // ); + } + }, + ), + ], + ), ), - ), - ], + ], + ), ), ), - ), - ], + ], + ), ), ), - ), - ); - }), + ); + }), + ), ), ); } From d20e83faa5823f1abd41ff12a9f94d66e827bf9a Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Sat, 13 Feb 2021 23:40:05 +0200 Subject: [PATCH 3/3] bug fixing --- .../prescription/add_prescription_form.dart | 171 ++++----- .../update_prescription_form.dart | 329 +++++++++++++----- 2 files changed, 320 insertions(+), 180 deletions(-) diff --git a/lib/screens/prescription/add_prescription_form.dart b/lib/screens/prescription/add_prescription_form.dart index 6ecf37d3..f262a0f6 100644 --- a/lib/screens/prescription/add_prescription_form.dart +++ b/lib/screens/prescription/add_prescription_form.dart @@ -573,105 +573,74 @@ class _PrescriptionFormWidgetState extends State { ), ), SizedBox(height: spaceBetweenTextFileds), - if (model.patientAssessmentList.isNotEmpty) Container( height: screenSize.height * 0.070, - child: InkWell( - onTap: indicationList != null - ? () { - Helpers.hideKeyboard(context); - 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( - model.patientAssessmentList[0] - .icdCode10ID - .toString(), - indication != null - ? indication['name'] - : null, - true), - enabled: true, - readOnly: true, - ), + 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.65, + child: InkWell( + onTap: indicationList != null + ? () { + 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), Container( height: screenSize.height * 0.070, @@ -755,13 +724,6 @@ class _PrescriptionFormWidgetState extends State { .instruction, controller: instructionController, //keyboardType: TextInputType.number, - validator: (value) { - if (value.isEmpty) - return TranslationBase.of(context) - .emptyMessage; - else - return null; - }, ), ), SizedBox(height: spaceBetweenTextFileds), @@ -795,6 +757,13 @@ class _PrescriptionFormWidgetState extends State { "1000 is the MAX for the strength"); return; } + if (int.parse( + strengthController.text) == + 0) { + DrAppToastMsg.showErrorToast( + "Streangth can't be zero"); + return; + } if (formKey.currentState .validate()) { diff --git a/lib/screens/prescription/update_prescription_form.dart b/lib/screens/prescription/update_prescription_form.dart index 0f48f5c1..af1fbb07 100644 --- a/lib/screens/prescription/update_prescription_form.dart +++ b/lib/screens/prescription/update_prescription_form.dart @@ -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/models/patient/patiant_info_model.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/helpers.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; @@ -36,6 +37,7 @@ class UpdatePrescriptionForm extends StatefulWidget { final String startDate; final String frequency; final String drugNameGeneric; + final PrescriptionViewModel model; UpdatePrescriptionForm( @@ -71,14 +73,44 @@ class _UpdatePrescriptionFormState extends State { GetMedicationResponseModel newSelectedMedication; GlobalKey key = new GlobalKey>(); - + List indicationList; + dynamic indication; + DateTime selectedDate; @override void 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 Widget build(BuildContext context) { + final screenSize = MediaQuery.of(context).size; return StatefulBuilder(builder: (BuildContext context, StateSetter setState /*You can rename this!*/) { return BaseView( @@ -105,17 +137,17 @@ class _UpdatePrescriptionFormState extends State { NetworkBaseView( baseViewModel: model, child: GestureDetector( - onTap: (){ + onTap: () { FocusScope.of(context).requestFocus(new FocusNode()); }, child: DraggableScrollableSheet( - initialChildSize: 0.95, + initialChildSize: 0.98, maxChildSize: 0.99, minChildSize: 0.6, builder: (BuildContext context, ScrollController scrollController) { return Container( - height: MediaQuery.of(context).size.height * 1.3, + height: MediaQuery.of(context).size.height * 2.5, child: Form( child: Padding( padding: EdgeInsets.symmetric( @@ -211,15 +243,18 @@ class _UpdatePrescriptionFormState extends State { child: Row( children: [ Container( - width: - MediaQuery.of(context).size.width * - 0.4900, - height: - MediaQuery.of(context).size.height * - 0.55, + width: MediaQuery.of(context) + .size + .width * + 0.4900, + height: MediaQuery.of(context) + .size + .height * + 0.55, child: TextFields( inputFormatters: [ - LengthLimitingTextInputFormatter(4), + LengthLimitingTextInputFormatter( + 4), WhitelistingTextInputFormatter .digitsOnly ], @@ -251,40 +286,49 @@ class _UpdatePrescriptionFormState extends State { width: 10.0, ), Container( - width: - MediaQuery.of(context).size.width * - 0.3700, + width: MediaQuery.of(context) + .size + .width * + 0.3700, child: InkWell( - onTap: model.medicationStrengthList != - null - ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = - ListSelectDialog( - list: model - .medicationStrengthList, - attributeName: 'nameEn', - attributeValueId: 'id', - okText: TranslationBase.of( - context) - .ok, - okFunction: - (selectedValue) { - setState(() { - units = selectedValue; - }); - }, - ); - showDialog( - barrierDismissible: false, - context: context, - builder: - (BuildContext context) { - return dialog; - }, - ); - } - : null, + onTap: + model.medicationStrengthList != + null + ? () { + Helpers.hideKeyboard( + context); + ListSelectDialog + dialog = + ListSelectDialog( + list: model + .medicationStrengthList, + attributeName: + 'nameEn', + attributeValueId: + 'id', + okText: + TranslationBase.of( + context) + .ok, + okFunction: + (selectedValue) { + setState(() { + units = + selectedValue; + }); + }, + ); + showDialog( + barrierDismissible: + false, + context: context, + builder: (BuildContext + context) { + return dialog; + }, + ); + } + : null, child: TextField( decoration: textFieldSelectorDecoration( @@ -309,8 +353,8 @@ class _UpdatePrescriptionFormState extends State { child: InkWell( onTap: model.medicationRouteList != null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( list: model.medicationRouteList, attributeName: 'nameEn', @@ -330,7 +374,8 @@ class _UpdatePrescriptionFormState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -354,13 +399,14 @@ class _UpdatePrescriptionFormState extends State { height: MediaQuery.of(context).size.height * 0.070, child: InkWell( - onTap: model.medicationDoseTimeList != null + onTap: model.medicationDoseTimeList != + null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( - list: - model.medicationDoseTimeList, + list: model + .medicationDoseTimeList, attributeName: 'nameEn', attributeValueId: 'id', okText: @@ -375,7 +421,8 @@ class _UpdatePrescriptionFormState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -383,7 +430,8 @@ class _UpdatePrescriptionFormState extends State { : null, child: TextField( decoration: textFieldSelectorDecoration( - TranslationBase.of(context).doseTime, + TranslationBase.of(context) + .doseTime, doseTime != null ? doseTime['nameEn'] : null, @@ -399,13 +447,14 @@ class _UpdatePrescriptionFormState extends State { height: MediaQuery.of(context).size.height * 0.070, child: InkWell( - onTap: model.medicationFrequencyList != null + onTap: model.medicationFrequencyList != + null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( - list: - model.medicationFrequencyList, + list: model + .medicationFrequencyList, attributeName: 'nameEn', attributeValueId: 'id', okText: @@ -421,7 +470,8 @@ class _UpdatePrescriptionFormState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -429,7 +479,8 @@ class _UpdatePrescriptionFormState extends State { : null, child: TextField( decoration: textFieldSelectorDecoration( - TranslationBase.of(context).frequency, + TranslationBase.of(context) + .frequency, frequencyUpdate != null ? frequencyUpdate['nameEn'] : null, @@ -445,13 +496,14 @@ class _UpdatePrescriptionFormState extends State { height: MediaQuery.of(context).size.height * 0.070, child: InkWell( - onTap: model.medicationDurationList != null + onTap: model.medicationDurationList != + null ? () { - Helpers.hideKeyboard(context); - ListSelectDialog dialog = + Helpers.hideKeyboard(context); + ListSelectDialog dialog = ListSelectDialog( - list: - model.medicationDurationList, + list: model + .medicationDurationList, attributeName: 'nameEn', attributeValueId: 'id', okText: @@ -467,7 +519,8 @@ class _UpdatePrescriptionFormState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -475,7 +528,8 @@ class _UpdatePrescriptionFormState extends State { : null, child: TextField( decoration: textFieldSelectorDecoration( - TranslationBase.of(context).duration, + TranslationBase.of(context) + .duration, updatedDuration != null ? updatedDuration['nameEn'] .toString() @@ -488,6 +542,100 @@ class _UpdatePrescriptionFormState extends State { SizedBox( 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( decoration: BoxDecoration( borderRadius: BorderRadius.all( @@ -503,11 +651,11 @@ class _UpdatePrescriptionFormState extends State { ), ), SizedBox( - height: 12.0, + height: 10.0, ), SizedBox( - height: - MediaQuery.of(context).size.height * 0.12, + height: MediaQuery.of(context).size.height * + 0.08, ), Container( margin: EdgeInsets.all( @@ -516,19 +664,22 @@ class _UpdatePrescriptionFormState extends State { alignment: WrapAlignment.center, children: [ AppButton( - title: - 'update prescription'.toUpperCase(), + title: 'update prescription' + .toUpperCase(), onPressed: () { updatePrescription( + newStartDate: selectedDate, newDoseStreangth: strengthController .text.isNotEmpty - ? strengthController.text + ? strengthController + .text : widget.doseStreangth, - newUnit: units != - null - ? units['id'].toString() - : widget.doseUnit, + newUnit: + units != + null + ? units['id'].toString() + : widget.doseUnit, doseUnit: widget.doseUnit, doseStreangth: widget .doseStreangth, @@ -582,6 +733,24 @@ class _UpdatePrescriptionFormState extends State { }); } + 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( String hintText, String selectedText, bool isDropDown, {Icon suffixIcon}) { @@ -626,6 +795,7 @@ class _UpdatePrescriptionFormState extends State { String route, String routeId, String startDate, + DateTime newStartDate, String doseUnit, String doseStreangth, String newDoseStreangth, @@ -664,7 +834,8 @@ class _UpdatePrescriptionFormState extends State { duration: newDuration.isNotEmpty ? int.parse(newDuration) : int.parse(duration), - doseStartDate: startDate)); + doseStartDate: + newStartDate != null ? newStartDate.toIso8601String() : startDate)); updatePrescriptionReqModel.prescriptionRequestModel = sss; //postProcedureReqModel.procedures = controlsProcedure;