Files
mih-project/Frontend/patient_manager/lib/components/prescipInput.dart
yaso-meth b18f8dd1d0 1) Update search field to cater for ontap of icon and required and editable parameters.
2) remove Unnesasay signed in user from widget, add menu height.
3) add medicine object to cater for results of med api call.
4) update search input to cater for new parameters.
5) create prescriotion popUp widget.
6) Create medicine search pop Up widget
2024-07-05 12:53:36 +02:00

217 lines
6.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:patient_manager/components/medicineSearch.dart';
import 'package:patient_manager/components/myDropdownInput.dart';
import 'package:patient_manager/components/myMLTextInput.dart';
import 'package:patient_manager/components/mySearchInput.dart';
import 'package:patient_manager/components/mybutton.dart';
class PrescripInput extends StatefulWidget {
final TextEditingController medicineController;
final TextEditingController quantityController;
final TextEditingController dosageController;
final TextEditingController timesDailyController;
final TextEditingController noDaysController;
final TextEditingController noRepeatsController;
final TextEditingController outputController;
const PrescripInput({
super.key,
required this.medicineController,
required this.quantityController,
required this.dosageController,
required this.timesDailyController,
required this.noDaysController,
required this.noRepeatsController,
required this.outputController,
});
@override
State<PrescripInput> createState() => _PrescripInputState();
}
class _PrescripInputState extends State<PrescripInput> {
String searchString = "";
final numberOptions = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24",
"25",
"26",
"27",
"28",
"29",
"30"
];
void getMedsPopUp(TextEditingController medSearch) {
showDialog(
context: context,
builder: (context) {
return MedicineSearch(
searchVlaue: medSearch,
);
},
);
}
@override
void initState() {
//futueMeds = getMedList(endpointMeds);
super.initState();
}
@override
Widget build(BuildContext context) {
return SizedBox(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Column(
children: [
SizedBox(
width: 300,
child: MySearchField(
controller: widget.medicineController,
hintText: "Medicine",
onChanged: (value) {
setState(() {
searchString = value;
});
},
required: true,
editable: true,
onTap: () {
getMedsPopUp(widget.medicineController);
},
),
),
const SizedBox(height: 25.0),
SizedBox(
width: 300,
child: MyDropdownField(
controller: widget.quantityController,
hintText: "Quantity",
dropdownOptions: numberOptions,
required: true,
),
),
const SizedBox(height: 25.0),
SizedBox(
width: 300,
child: MyDropdownField(
controller: widget.dosageController,
hintText: "Dosage",
dropdownOptions: numberOptions,
required: true,
),
),
const SizedBox(height: 25.0),
SizedBox(
width: 300,
child: MyDropdownField(
controller: widget.timesDailyController,
hintText: "Times Daily",
dropdownOptions: numberOptions,
required: true,
),
),
const SizedBox(height: 25.0),
SizedBox(
width: 300,
child: MyDropdownField(
controller: widget.noDaysController,
hintText: "No. Days",
dropdownOptions: numberOptions,
required: true,
),
),
const SizedBox(height: 25.0),
SizedBox(
width: 300,
child: MyDropdownField(
controller: widget.noRepeatsController,
hintText: "No. Repeats",
dropdownOptions: numberOptions,
required: true,
),
),
SizedBox(
width: 300,
child: MyButton(
onTap: () {},
buttonText: "Add",
buttonColor: Colors.blueAccent,
textColor: Colors.white,
),
)
],
),
//const SizedBox(height: 50.0),
Column(
children: [
SizedBox(
width: 550,
height: 400,
child: MyMLTextField(
controller: widget.outputController,
hintText: "Prescrion Output",
editable: false,
required: false,
),
),
SizedBox(
width: 300,
height: 100,
child: MyButton(
onTap: () {
// if (isMedCertFieldsFilled()) {
// generateMedCert();
// Navigator.pop(context);
// } else {
// showDialog(
// context: context,
// builder: (context) {
// return const MyErrorMessage(
// errorType: "Input Error");
// },
// );
// }
},
buttonText: "Generate",
buttonColor: Colors.green,
textColor: Colors.white,
),
)
],
),
],
),
);
}
}