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 0f681c4d..f262a0f6 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, @@ -554,103 +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'] + width: double.infinity, + child: Row( + children: [ + Container( + width: MediaQuery.of(context) + .size + .width * + 0.29, + child: InkWell( + onTap: indicationList != null + ? () { + Helpers.hideKeyboard( + context); + } : null, - true), - enabled: true, - readOnly: true, - ), + 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, @@ -660,7 +650,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 +668,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 +690,8 @@ class _PrescriptionFormWidgetState extends State { showDialog( barrierDismissible: false, context: context, - builder: (BuildContext context) { + builder: + (BuildContext context) { return dialog; }, ); @@ -706,7 +699,8 @@ class _PrescriptionFormWidgetState extends State { : null, child: TextField( decoration: textFieldSelectorDecoration( - TranslationBase.of(context).duration, + TranslationBase.of(context) + .duration, duration != null ? duration['nameEn'] : null, @@ -726,17 +720,10 @@ 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) { - if (value.isEmpty) - return TranslationBase.of(context) - .emptyMessage; - else - return null; - }, ), ), SizedBox(height: spaceBetweenTextFileds), @@ -763,8 +750,23 @@ 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) == + 0) { + DrAppToastMsg.showErrorToast( + "Streangth can't be zero"); + return; + } - if (formKey.currentState.validate()) { + if (formKey.currentState + .validate()) { Navigator.pop(context); { // var x = model @@ -801,8 +803,8 @@ class _PrescriptionFormWidgetState extends State { model: widget.model, duration: duration['id'].toString(), - frequency: - frequency['id'].toString(), + frequency: frequency['id'] + .toString(), route: route['id'].toString(), drugId: _selectedMedication .itemId @@ -812,7 +814,8 @@ class _PrescriptionFormWidgetState extends State { indication: indicationController.text, instruction: - instructionController.text, + instructionController + .text, doseTime: selectedDate, ); } 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;