fix pat profile padding

This commit is contained in:
2025-06-06 13:39:54 +02:00
parent 52bf4ed1b6
commit 0cfe408bce
5 changed files with 1093 additions and 1103 deletions

View File

@@ -82,292 +82,301 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
); );
} }
Widget getWindowBody() { Widget getWindowBody(double width) {
return Column( return Padding(
children: [ padding: MzanziInnovationHub.of(context)!.theme.screenType == "desktop"
MihForm( ? EdgeInsets.symmetric(horizontal: width * 0.05)
formKey: _formKey, : const EdgeInsets.symmetric(horizontal: 0),
formFields: [ child: Column(
MIHDropdownField( children: [
controller: _docTypeController, MihForm(
hintText: "Document Type", formKey: _formKey,
dropdownOptions: const ["Claim", "Statement"], formFields: [
required: true, MIHDropdownField(
editable: true, controller: _docTypeController,
enableSearch: false, hintText: "Document Type",
), dropdownOptions: const ["Claim", "Statement"],
const SizedBox(height: 10), required: true,
Center( editable: true,
child: Text( enableSearch: false,
"Service Details",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
), ),
), const SizedBox(height: 10),
Divider( Center(
color: MzanziInnovationHub.of(context)!.theme.secondaryColor()),
const SizedBox(height: 10),
MIHDateField(
controller: _serviceDateController,
lableText: "Date of Service",
required: true,
),
const SizedBox(height: 10),
MIHDropdownField(
controller: _serviceDescController,
hintText: "Service Decription",
dropdownOptions: const [
"Consultation",
"Procedure",
"Other",
],
required: true,
editable: true,
enableSearch: false,
),
const SizedBox(height: 10),
ValueListenableBuilder(
valueListenable: serviceDesc,
builder: (BuildContext context, String value, Widget? child) {
Widget returnWidget;
switch (value) {
case 'Consultation':
returnWidget = Column(
children: [
SizedBox(
child: MIHDropdownField(
controller: _serviceDescOptionsController,
hintText: "Consultation Type",
dropdownOptions: const [
"General Consultation",
"Follow-Up Consultation",
"Specialist Consultation",
"Emergency Consultation",
],
required: true,
editable: true,
enableSearch: false,
),
),
const SizedBox(height: 10),
],
);
case 'Procedure':
returnWidget = Column(
children: [
MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
controller: _prcedureNameController,
multiLineInput: false,
requiredText: true,
hintText: "Procedure Name",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10),
MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
controller: _proceedureAdditionalInfoController,
multiLineInput: false,
requiredText: true,
hintText: "Additional Information",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 15),
],
);
case 'Other':
returnWidget = Column(
children: [
MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
controller: _serviceDescOptionsController,
multiLineInput: false,
requiredText: true,
hintText: "Service Description Details",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10),
],
);
default:
returnWidget = const SizedBox();
}
return returnWidget;
},
),
Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: Text("ICD-10 Code & Description",
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
)),
),
const SizedBox(height: 4),
MihSearchBar(
controller: _icd10CodeController,
hintText: "ICD-10 Search",
prefixIcon: Icons.search,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
hintColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
onPrefixIconTap: () {
MIHIcd10CodeApis.getIcd10Codes(
_icd10CodeController.text, context)
.then((result) {
icd10SearchWindow(result);
});
},
onClearIconTap: () {
_icd10CodeController.clear();
},
searchFocusNode: _searchFocusNode,
),
],
),
const SizedBox(height: 10),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: _amountController,
multiLineInput: false,
requiredText: true,
numberMode: true,
hintText: "Service Cost",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10),
Center(
child: Text(
"Additional Infomation",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
),
),
Divider(
color: MzanziInnovationHub.of(context)!.theme.secondaryColor()),
const SizedBox(height: 10),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: _preauthNoController,
multiLineInput: false,
requiredText: false,
hintText: "Pre-authorisation No.",
),
const SizedBox(height: 20),
Center(
child: MihButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
if (isInputValid()) {
MIHClaimStatementGenerationApi().generateClaimStatement(
ClaimStatementGenerationArguments(
_docTypeController.text,
widget.selectedPatient.app_id,
_fullNameController.text,
_idController.text,
_medAidController.text,
_medAidNoController.text,
_medAidCodeController.text,
_medAidNameController.text,
_medAidSchemeController.text,
widget.business!.Name,
"*To-Be Added*",
widget.business!.contact_no,
widget.business!.bus_email,
_providerNameController.text,
_practiceNoController.text,
_vatNoController.text,
_serviceDateController.text,
_serviceDescController.text,
_serviceDescOptionsController.text,
_prcedureNameController.text,
_proceedureAdditionalInfoController.text,
_icd10CodeController.text,
_amountController.text,
_preauthNoController.text,
widget.business!.logo_path,
widget.businessUser!.sig_path,
),
PatientViewArguments(
widget.signedInUser,
widget.selectedPatient,
widget.businessUser,
widget.business,
"business",
),
widget.env,
context);
} else {
showDialog(
context: context,
builder: (context) {
return const MIHErrorMessage(
errorType: "Input Error");
},
);
}
}
},
buttonColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
width: 300,
child: Text( child: Text(
"Generate", "Service Details",
textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
color: fontSize: 25,
MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontSize: 20,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
), ),
), ),
), ),
), Divider(
], color:
), MzanziInnovationHub.of(context)!.theme.secondaryColor()),
], const SizedBox(height: 10),
MIHDateField(
controller: _serviceDateController,
lableText: "Date of Service",
required: true,
),
const SizedBox(height: 10),
MIHDropdownField(
controller: _serviceDescController,
hintText: "Service Decription",
dropdownOptions: const [
"Consultation",
"Procedure",
"Other",
],
required: true,
editable: true,
enableSearch: false,
),
const SizedBox(height: 10),
ValueListenableBuilder(
valueListenable: serviceDesc,
builder: (BuildContext context, String value, Widget? child) {
Widget returnWidget;
switch (value) {
case 'Consultation':
returnWidget = Column(
children: [
SizedBox(
child: MIHDropdownField(
controller: _serviceDescOptionsController,
hintText: "Consultation Type",
dropdownOptions: const [
"General Consultation",
"Follow-Up Consultation",
"Specialist Consultation",
"Emergency Consultation",
],
required: true,
editable: true,
enableSearch: false,
),
),
const SizedBox(height: 10),
],
);
case 'Procedure':
returnWidget = Column(
children: [
MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
controller: _prcedureNameController,
multiLineInput: false,
requiredText: true,
hintText: "Procedure Name",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10),
MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
controller: _proceedureAdditionalInfoController,
multiLineInput: false,
requiredText: true,
hintText: "Additional Information",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 15),
],
);
case 'Other':
returnWidget = Column(
children: [
MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
inputColor: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
controller: _serviceDescOptionsController,
multiLineInput: false,
requiredText: true,
hintText: "Service Description Details",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10),
],
);
default:
returnWidget = const SizedBox();
}
return returnWidget;
},
),
Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: Text("ICD-10 Code & Description",
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
)),
),
const SizedBox(height: 4),
MihSearchBar(
controller: _icd10CodeController,
hintText: "ICD-10 Search",
prefixIcon: Icons.search,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
hintColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
onPrefixIconTap: () {
MIHIcd10CodeApis.getIcd10Codes(
_icd10CodeController.text, context)
.then((result) {
icd10SearchWindow(result);
});
},
onClearIconTap: () {
_icd10CodeController.clear();
},
searchFocusNode: _searchFocusNode,
),
],
),
const SizedBox(height: 10),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: _amountController,
multiLineInput: false,
requiredText: true,
numberMode: true,
hintText: "Service Cost",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10),
Center(
child: Text(
"Additional Infomation",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
),
),
Divider(
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor()),
const SizedBox(height: 10),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: _preauthNoController,
multiLineInput: false,
requiredText: false,
hintText: "Pre-authorisation No.",
),
const SizedBox(height: 20),
Center(
child: MihButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
if (isInputValid()) {
MIHClaimStatementGenerationApi().generateClaimStatement(
ClaimStatementGenerationArguments(
_docTypeController.text,
widget.selectedPatient.app_id,
_fullNameController.text,
_idController.text,
_medAidController.text,
_medAidNoController.text,
_medAidCodeController.text,
_medAidNameController.text,
_medAidSchemeController.text,
widget.business!.Name,
"*To-Be Added*",
widget.business!.contact_no,
widget.business!.bus_email,
_providerNameController.text,
_practiceNoController.text,
_vatNoController.text,
_serviceDateController.text,
_serviceDescController.text,
_serviceDescOptionsController.text,
_prcedureNameController.text,
_proceedureAdditionalInfoController.text,
_icd10CodeController.text,
_amountController.text,
_preauthNoController.text,
widget.business!.logo_path,
widget.businessUser!.sig_path,
),
PatientViewArguments(
widget.signedInUser,
widget.selectedPatient,
widget.businessUser,
widget.business,
"business",
),
widget.env,
context);
} else {
showDialog(
context: context,
builder: (context) {
return const MIHErrorMessage(
errorType: "Input Error");
},
);
}
}
},
buttonColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
width: 300,
child: Text(
"Generate",
style: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
),
),
],
),
],
),
); );
} }
@@ -459,19 +468,14 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double screenWidth = MediaQuery.of(context).size.width;
return MihPackageWindow( return MihPackageWindow(
fullscreen: false, fullscreen: false,
windowTitle: "Generate Claim/ Statement Document", windowTitle: "Generate Claim/ Statement Document",
onWindowTapClose: () { onWindowTapClose: () {
// medicineController.clear();
// quantityController.clear();
// dosageController.clear();
// timesDailyController.clear();
// noDaysController.clear();
// noRepeatsController.clear();
Navigator.pop(context); Navigator.pop(context);
}, },
windowBody: getWindowBody(), windowBody: getWindowBody(screenWidth),
); );
} }
} }

View File

@@ -69,7 +69,7 @@ class _PatientConsultationState extends State<PatientConsultation> {
} }
} }
void addNotePopUp() { void addNotePopUp(double width) {
DateTime now = new DateTime.now(); DateTime now = new DateTime.now();
DateTime date = new DateTime(now.year, now.month, now.day); DateTime date = new DateTime(now.year, now.month, now.day);
var title = ""; var title = "";
@@ -94,128 +94,136 @@ class _PatientConsultationState extends State<PatientConsultation> {
titleController.clear(); titleController.clear();
noteTextController.clear(); noteTextController.clear();
}, },
windowBody: Column( windowBody: Padding(
children: [ padding:
MihForm( MzanziInnovationHub.of(context)!.theme.screenType == "desktop"
formKey: _formKey, ? EdgeInsets.symmetric(horizontal: width * 0.05)
formFields: [ : const EdgeInsets.symmetric(horizontal: 0),
MihTextFormField( child: Column(
fillColor: children: [
MzanziInnovationHub.of(context)!.theme.secondaryColor(), MihForm(
inputColor: formKey: _formKey,
MzanziInnovationHub.of(context)!.theme.primaryColor(), formFields: [
controller: officeController, MihTextFormField(
multiLineInput: false, fillColor:
requiredText: true, MzanziInnovationHub.of(context)!.theme.secondaryColor(),
readOnly: true, inputColor:
hintText: "Office", MzanziInnovationHub.of(context)!.theme.primaryColor(),
), controller: officeController,
const SizedBox(height: 10.0), multiLineInput: false,
MihTextFormField( requiredText: true,
fillColor: readOnly: true,
MzanziInnovationHub.of(context)!.theme.secondaryColor(), hintText: "Office",
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: doctorController,
multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Created By",
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: dateController,
multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Created Date",
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: titleController,
multiLineInput: false,
requiredText: true,
hintText: "Note Title",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
height: 250,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: noteTextController,
multiLineInput: true,
requiredText: true,
hintText: "Note Details",
validator: (value) {
return MihValidationServices().validateLength(value, 512);
},
),
SizedBox(
height: 15,
child: ValueListenableBuilder(
builder: (BuildContext context, int value, Widget? child) {
return Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
"$value",
style: TextStyle(
color: getNoteDetailLimitColor(),
fontWeight: FontWeight.bold,
),
),
const SizedBox(width: 5),
Text(
"/512",
style: TextStyle(
color: getNoteDetailLimitColor(),
fontWeight: FontWeight.bold,
),
),
],
);
},
valueListenable: _counter,
), ),
), const SizedBox(height: 10.0),
const SizedBox(height: 15.0), MihTextFormField(
MihButton( fillColor:
onPressed: () { MzanziInnovationHub.of(context)!.theme.secondaryColor(),
if (_formKey.currentState!.validate()) { inputColor:
addPatientNoteAPICall(); MzanziInnovationHub.of(context)!.theme.primaryColor(),
Navigator.pop(context); controller: doctorController,
} multiLineInput: false,
}, requiredText: true,
buttonColor: readOnly: true,
MzanziInnovationHub.of(context)!.theme.secondaryColor(), hintText: "Created By",
width: 300, ),
child: Text( const SizedBox(height: 10.0),
"Add Note", MihTextFormField(
style: TextStyle( fillColor:
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
MzanziInnovationHub.of(context)!.theme.primaryColor(), inputColor:
fontSize: 20, MzanziInnovationHub.of(context)!.theme.primaryColor(),
fontWeight: FontWeight.bold, controller: dateController,
multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Created Date",
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: titleController,
multiLineInput: false,
requiredText: true,
hintText: "Note Title",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
height: 250,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: noteTextController,
multiLineInput: true,
requiredText: true,
hintText: "Note Details",
validator: (value) {
return MihValidationServices().validateLength(value, 512);
},
),
SizedBox(
height: 15,
child: ValueListenableBuilder(
builder:
(BuildContext context, int value, Widget? child) {
return Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
"$value",
style: TextStyle(
color: getNoteDetailLimitColor(),
fontWeight: FontWeight.bold,
),
),
const SizedBox(width: 5),
Text(
"/512",
style: TextStyle(
color: getNoteDetailLimitColor(),
fontWeight: FontWeight.bold,
),
),
],
);
},
valueListenable: _counter,
), ),
), ),
), const SizedBox(height: 15.0),
], MihButton(
), onPressed: () {
], if (_formKey.currentState!.validate()) {
addPatientNoteAPICall();
Navigator.pop(context);
}
},
buttonColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
width: 300,
child: Text(
"Add Note",
style: TextStyle(
color: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
),
],
),
],
),
), ),
), ),
); );
@@ -271,40 +279,6 @@ class _PatientConsultationState extends State<PatientConsultation> {
} }
} }
List<Widget> setIcons() {
if (widget.type == "personal") {
return [
Text(
"Consultation Notes",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!.theme.secondaryColor()),
),
];
} else {
return [
Text(
"Consultation Notes",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
fontWeight: FontWeight.bold,
color: MzanziInnovationHub.of(context)!.theme.secondaryColor()),
),
IconButton(
onPressed: () {
// addConsultationNotePopUp();
addNotePopUp();
},
icon: Icon(Icons.add,
color: MzanziInnovationHub.of(context)!.theme.secondaryColor()),
)
];
}
}
void successPopUp(String message) { void successPopUp(String message) {
showDialog( showDialog(
context: context, context: context,
@@ -349,13 +323,14 @@ class _PatientConsultationState extends State<PatientConsultation> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double screenWidth = MediaQuery.of(context).size.width;
return MihPackageToolBody( return MihPackageToolBody(
borderOn: false, borderOn: false,
bodyItem: getBody(), bodyItem: getBody(screenWidth),
); );
} }
Widget getBody() { Widget getBody(double width) {
return Stack( return Stack(
children: [ children: [
MihSingleChildScroll( MihSingleChildScroll(
@@ -413,7 +388,7 @@ class _PatientConsultationState extends State<PatientConsultation> {
MzanziInnovationHub.of(context)!.theme.successColor(), MzanziInnovationHub.of(context)!.theme.successColor(),
onTap: () { onTap: () {
// addConsultationNotePopUp(); // addConsultationNotePopUp();
addNotePopUp(); addNotePopUp(width);
}, },
) )
], ],

View File

@@ -39,7 +39,7 @@ class _PatientInfoState extends State<PatientInfo> {
final medMainMemController = TextEditingController(); final medMainMemController = TextEditingController();
final medAidCodeController = TextEditingController(); final medAidCodeController = TextEditingController();
final _formKey = GlobalKey<FormState>(); final _formKey = GlobalKey<FormState>();
double textFieldWidth = 400.0; double textFieldWidth = 500;
late String medAid; late String medAid;
Widget getPatientDetailsField() { Widget getPatientDetailsField() {
@@ -48,69 +48,93 @@ class _PatientInfoState extends State<PatientInfo> {
spacing: 15, spacing: 15,
runSpacing: 10, runSpacing: 10,
children: [ children: [
MihTextFormField( SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: idController, fillColor:
multiLineInput: false, MzanziInnovationHub.of(context)!.theme.secondaryColor(),
requiredText: true, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
readOnly: true, controller: idController,
hintText: "ID No.", multiLineInput: false,
// validator: (value) { requiredText: true,
// return MihValidationServices().isEmpty(value); readOnly: true,
// }, hintText: "ID No.",
// validator: (value) {
// return MihValidationServices().isEmpty(value);
// },
),
), ),
MihTextFormField( SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: fnameController, fillColor:
multiLineInput: false, MzanziInnovationHub.of(context)!.theme.secondaryColor(),
requiredText: true, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
readOnly: true, controller: fnameController,
hintText: "First Name", multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "First Name",
),
), ),
MihTextFormField( SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: lnameController, fillColor:
multiLineInput: false, MzanziInnovationHub.of(context)!.theme.secondaryColor(),
requiredText: true, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
hintText: "Surname", controller: lnameController,
readOnly: true, multiLineInput: false,
requiredText: true,
hintText: "Surname",
readOnly: true,
),
), ),
MihTextFormField( SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: cellController, fillColor:
multiLineInput: false, MzanziInnovationHub.of(context)!.theme.secondaryColor(),
requiredText: true, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
readOnly: true, controller: cellController,
hintText: "Cell No.", multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Cell No.",
),
), ),
MihTextFormField( SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: emailController, fillColor:
multiLineInput: false, MzanziInnovationHub.of(context)!.theme.secondaryColor(),
requiredText: true, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
readOnly: true, controller: emailController,
hintText: "Email", multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Email",
),
), ),
MihTextFormField( SizedBox(
width: textFieldWidth, width: textFieldWidth,
height: 100, child: MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), // width: textFieldWidth,
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), height: 100,
controller: addressController, fillColor:
multiLineInput: true, MzanziInnovationHub.of(context)!.theme.secondaryColor(),
requiredText: true, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
readOnly: true, controller: addressController,
hintText: "Address", multiLineInput: true,
requiredText: true,
readOnly: true,
hintText: "Address",
),
), ),
], ],
), ),
@@ -120,15 +144,18 @@ class _PatientInfoState extends State<PatientInfo> {
Widget getMedAidDetailsFields() { Widget getMedAidDetailsFields() {
List<Widget> medAidDet = []; List<Widget> medAidDet = [];
medAidDet.add( medAidDet.add(
MihTextFormField( SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: medAidController, fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
multiLineInput: false, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
requiredText: true, controller: medAidController,
readOnly: true, multiLineInput: false,
hintText: "Medical Aid", requiredText: true,
readOnly: true,
hintText: "Medical Aid",
),
), ),
); );
bool req; bool req;
@@ -140,67 +167,81 @@ class _PatientInfoState extends State<PatientInfo> {
medAidDet.addAll([ medAidDet.addAll([
Visibility( Visibility(
visible: req, visible: req,
child: MihTextFormField( child: SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: medMainMemController, fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
multiLineInput: false, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
requiredText: true, controller: medMainMemController,
readOnly: true, multiLineInput: false,
hintText: "Main Member", requiredText: true,
readOnly: true,
hintText: "Main Member",
),
), ),
), ),
Visibility( Visibility(
visible: req, visible: req,
child: MihTextFormField( child: SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: medNoController, fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
multiLineInput: false, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
requiredText: true, controller: medNoController,
readOnly: true, multiLineInput: false,
hintText: "No.", requiredText: true,
readOnly: true,
hintText: "No.",
),
), ),
), ),
Visibility( Visibility(
visible: req, visible: req,
child: MihTextFormField( child: SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: medAidCodeController, fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
multiLineInput: false, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
requiredText: true, controller: medAidCodeController,
readOnly: true, multiLineInput: false,
hintText: "Code", requiredText: true,
readOnly: true,
hintText: "Code",
),
), ),
), ),
Visibility( Visibility(
visible: req, visible: req,
child: MihTextFormField( child: SizedBox(
width: textFieldWidth, child: MihTextFormField(
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), // width: textFieldWidth,
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
controller: medNameController, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
multiLineInput: false, controller: medNameController,
requiredText: true, multiLineInput: false,
readOnly: true, requiredText: true,
hintText: "Name", readOnly: true,
hintText: "Name",
),
), ),
), ),
Visibility( Visibility(
visible: req, visible: req,
child: MihTextFormField( child: SizedBox(
width: textFieldWidth, width: textFieldWidth,
fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), child: MihTextFormField(
inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), // width: textFieldWidth,
controller: medSchemeController, fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
multiLineInput: false, inputColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
requiredText: true, controller: medSchemeController,
readOnly: true, multiLineInput: false,
hintText: "Plan", requiredText: true,
readOnly: true,
hintText: "Plan",
),
), ),
), ),
]); ]);
@@ -263,14 +304,15 @@ class _PatientInfoState extends State<PatientInfo> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double screenWidth = MediaQuery.of(context).size.width;
return MihPackageToolBody( return MihPackageToolBody(
borderOn: false, borderOn: false,
innerHorizontalPadding: 10, innerHorizontalPadding: 10,
bodyItem: getBody(), bodyItem: getBody(screenWidth),
); );
} }
Widget getBody() { Widget getBody(double width) {
return Stack( return Stack(
children: [ children: [
MihSingleChildScroll( MihSingleChildScroll(

View File

@@ -160,18 +160,127 @@ class _AddPatientState extends State<AddPatient> {
} }
} }
Widget displayForm() { Widget displayForm(double width) {
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Padding(
children: [ padding: MzanziInnovationHub.of(context)!.theme.screenType == "desktop"
MihForm( ? EdgeInsets.symmetric(horizontal: width * 0.2)
formKey: _formKey, : EdgeInsets.symmetric(horizontal: width * 0.075),
formFields: [ child: Column(
Row( children: [
mainAxisAlignment: MainAxisAlignment.center, MihForm(
children: [ formKey: _formKey,
Text( formFields: [
"Personal", Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"Personal",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 25.0,
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
),
),
],
),
Divider(
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor()),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: idController,
multiLineInput: false,
requiredText: true,
hintText: "ID No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: fnameController,
multiLineInput: false,
requiredText: true,
hintText: "First Name",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: lnameController,
multiLineInput: false,
requiredText: true,
hintText: "Surname",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: cellController,
multiLineInput: false,
requiredText: true,
hintText: "Cell No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: emailController,
multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Email",
validator: (value) {
return MihValidationServices().validateEmail(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
height: 100,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: addressController,
multiLineInput: true,
requiredText: true,
hintText: "Address",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 15.0),
Center(
child: Text(
"Medical Aid Details",
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
@@ -181,250 +290,150 @@ class _AddPatientState extends State<AddPatient> {
.secondaryColor(), .secondaryColor(),
), ),
), ),
],
),
Divider(
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor()),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: idController,
multiLineInput: false,
requiredText: true,
hintText: "ID No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: fnameController,
multiLineInput: false,
requiredText: true,
hintText: "First Name",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: lnameController,
multiLineInput: false,
requiredText: true,
hintText: "Surname",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: cellController,
multiLineInput: false,
requiredText: true,
hintText: "Cell No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: emailController,
multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Email",
validator: (value) {
return MihValidationServices().validateEmail(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
height: 100,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: addressController,
multiLineInput: true,
requiredText: true,
hintText: "Address",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 15.0),
Center(
child: Text(
"Medical Aid Details",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 25.0,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
), ),
), Divider(
Divider( color: MzanziInnovationHub.of(context)!
color: .theme
MzanziInnovationHub.of(context)!.theme.secondaryColor()), .secondaryColor()),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MIHDropdownField( MIHDropdownField(
controller: medAidController, controller: medAidController,
hintText: "Medical Aid", hintText: "Medical Aid",
editable: true, editable: true,
required: true, required: true,
enableSearch: false, enableSearch: false,
dropdownOptions: const ["Yes", "No"], dropdownOptions: const ["Yes", "No"],
), ),
ValueListenableBuilder( ValueListenableBuilder(
valueListenable: medRequired, valueListenable: medRequired,
builder: (BuildContext context, bool value, Widget? child) { builder: (BuildContext context, bool value, Widget? child) {
return Visibility( return Visibility(
visible: value, visible: value,
child: Column( child: Column(
children: [ children: [
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MIHDropdownField( MIHDropdownField(
controller: medMainMemController, controller: medMainMemController,
hintText: "Main Member", hintText: "Main Member",
editable: value, editable: value,
required: value, required: value,
enableSearch: false, enableSearch: false,
dropdownOptions: const ["Yes", "No"], dropdownOptions: const ["Yes", "No"],
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medNoController, controller: medNoController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "No.", hintText: "No.",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medAidCodeController, controller: medAidCodeController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "Code", hintText: "Code",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medNameController, controller: medNameController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "Name", hintText: "Name",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medSchemeController, controller: medSchemeController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "Plan", hintText: "Plan",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
], ],
), ),
); );
},
),
const SizedBox(height: 20.0),
Center(
child: MihButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
submitForm();
}
}, },
buttonColor: ),
MzanziInnovationHub.of(context)!.theme.secondaryColor(), const SizedBox(height: 20.0),
width: 300, Center(
child: Text( child: MihButton(
"Add", onPressed: () {
style: TextStyle( if (_formKey.currentState!.validate()) {
color: submitForm();
MzanziInnovationHub.of(context)!.theme.primaryColor(), }
fontSize: 20, },
fontWeight: FontWeight.bold, buttonColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
width: 300,
child: Text(
"Add",
style: TextStyle(
color: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
fontSize: 20,
fontWeight: FontWeight.bold,
),
), ),
), ),
), ),
), const SizedBox(height: 20.0),
const SizedBox(height: 20.0), ],
], ),
), ],
], ),
), ),
); );
} }
@@ -458,7 +467,7 @@ class _AddPatientState extends State<AddPatient> {
); );
} }
MIHBody getBody() { MIHBody getBody(double width) {
return MIHBody( return MIHBody(
borderOn: false, borderOn: false,
bodyItems: [ bodyItems: [
@@ -473,7 +482,7 @@ class _AddPatientState extends State<AddPatient> {
} }
} }
}, },
child: displayForm(), child: displayForm(width),
), ),
], ],
); );
@@ -513,12 +522,12 @@ class _AddPatientState extends State<AddPatient> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print("Add Patient"); double screenWidth = MediaQuery.of(context).size.width;
return MIHLayoutBuilder( return MIHLayoutBuilder(
actionButton: getActionButton(), actionButton: getActionButton(),
header: getHeader(), header: getHeader(),
secondaryActionButton: null, secondaryActionButton: null,
body: getBody(), body: getBody(screenWidth),
actionDrawer: null, actionDrawer: null,
secondaryActionDrawer: null, secondaryActionDrawer: null,
bottomNavBar: null, bottomNavBar: null,

View File

@@ -374,18 +374,127 @@ class _EditPatientState extends State<EditPatient> {
} }
} }
Widget displayForm() { Widget displayForm(double width) {
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Padding(
children: [ padding: MzanziInnovationHub.of(context)!.theme.screenType == "desktop"
MihForm( ? EdgeInsets.symmetric(horizontal: width * 0.2)
formKey: _formKey, : EdgeInsets.symmetric(horizontal: width * 0.075),
formFields: [ child: Column(
Row( children: [
mainAxisAlignment: MainAxisAlignment.center, MihForm(
children: [ formKey: _formKey,
Text( formFields: [
"Personal", Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"Personal",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 25.0,
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor(),
),
),
],
),
Divider(
color: MzanziInnovationHub.of(context)!
.theme
.secondaryColor()),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: idController,
multiLineInput: false,
requiredText: true,
hintText: "ID No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: fnameController,
multiLineInput: false,
requiredText: true,
hintText: "First Name",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: lnameController,
multiLineInput: false,
requiredText: true,
hintText: "Surname",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: cellController,
multiLineInput: false,
requiredText: true,
hintText: "Cell No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: emailController,
multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Email",
validator: (value) {
return MihValidationServices().validateEmail(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
height: 100,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: addressController,
multiLineInput: true,
requiredText: true,
hintText: "Address",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 15.0),
Center(
child: Text(
"Medical Aid Details",
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
@@ -395,250 +504,150 @@ class _EditPatientState extends State<EditPatient> {
.secondaryColor(), .secondaryColor(),
), ),
), ),
],
),
Divider(
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor()),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: idController,
multiLineInput: false,
requiredText: true,
hintText: "ID No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: fnameController,
multiLineInput: false,
requiredText: true,
hintText: "First Name",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: lnameController,
multiLineInput: false,
requiredText: true,
hintText: "Surname",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: cellController,
multiLineInput: false,
requiredText: true,
hintText: "Cell No.",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: emailController,
multiLineInput: false,
requiredText: true,
readOnly: true,
hintText: "Email",
validator: (value) {
return MihValidationServices().validateEmail(value);
},
),
const SizedBox(height: 10.0),
MihTextFormField(
height: 100,
fillColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
inputColor:
MzanziInnovationHub.of(context)!.theme.primaryColor(),
controller: addressController,
multiLineInput: true,
requiredText: true,
hintText: "Address",
validator: (value) {
return MihValidationServices().isEmpty(value);
},
),
const SizedBox(height: 15.0),
Center(
child: Text(
"Medical Aid Details",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 25.0,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
), ),
), Divider(
Divider( color: MzanziInnovationHub.of(context)!
color: .theme
MzanziInnovationHub.of(context)!.theme.secondaryColor()), .secondaryColor()),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MIHDropdownField( MIHDropdownField(
controller: medAidController, controller: medAidController,
hintText: "Medical Aid", hintText: "Medical Aid",
editable: true, editable: true,
required: true, required: true,
enableSearch: false, enableSearch: false,
dropdownOptions: const ["Yes", "No"], dropdownOptions: const ["Yes", "No"],
), ),
ValueListenableBuilder( ValueListenableBuilder(
valueListenable: medRequired, valueListenable: medRequired,
builder: (BuildContext context, bool value, Widget? child) { builder: (BuildContext context, bool value, Widget? child) {
return Visibility( return Visibility(
visible: value, visible: value,
child: Column( child: Column(
children: [ children: [
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MIHDropdownField( MIHDropdownField(
controller: medMainMemController, controller: medMainMemController,
hintText: "Main Member", hintText: "Main Member",
editable: value, editable: value,
required: value, required: value,
enableSearch: false, enableSearch: false,
dropdownOptions: const ["Yes", "No"], dropdownOptions: const ["Yes", "No"],
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medNoController, controller: medNoController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "No.", hintText: "No.",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medAidCodeController, controller: medAidCodeController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "Code", hintText: "Code",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medNameController, controller: medNameController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "Name", hintText: "Name",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
MihTextFormField( MihTextFormField(
fillColor: MzanziInnovationHub.of(context)! fillColor: MzanziInnovationHub.of(context)!
.theme .theme
.secondaryColor(), .secondaryColor(),
inputColor: MzanziInnovationHub.of(context)! inputColor: MzanziInnovationHub.of(context)!
.theme .theme
.primaryColor(), .primaryColor(),
controller: medSchemeController, controller: medSchemeController,
multiLineInput: false, multiLineInput: false,
requiredText: true, requiredText: true,
hintText: "Plan", hintText: "Plan",
validator: (validationValue) { validator: (validationValue) {
if (value) { if (value) {
return MihValidationServices() return MihValidationServices()
.isEmpty(validationValue); .isEmpty(validationValue);
} }
return null; return null;
}, },
), ),
const SizedBox(height: 10.0), const SizedBox(height: 10.0),
], ],
), ),
); );
},
),
const SizedBox(height: 20.0),
Center(
child: MihButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
submitForm();
}
}, },
buttonColor: ),
MzanziInnovationHub.of(context)!.theme.secondaryColor(), const SizedBox(height: 20.0),
width: 300, Center(
child: Text( child: MihButton(
"Update", onPressed: () {
style: TextStyle( if (_formKey.currentState!.validate()) {
color: submitForm();
MzanziInnovationHub.of(context)!.theme.primaryColor(), }
fontSize: 20, },
fontWeight: FontWeight.bold, buttonColor:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
width: 300,
child: Text(
"Update",
style: TextStyle(
color: MzanziInnovationHub.of(context)!
.theme
.primaryColor(),
fontSize: 20,
fontWeight: FontWeight.bold,
),
), ),
), ),
), ),
), const SizedBox(height: 20.0),
const SizedBox(height: 20.0), ],
], ),
), ],
], ),
), ),
); );
} }
@@ -672,7 +681,7 @@ class _EditPatientState extends State<EditPatient> {
); );
} }
MIHBody getBody() { MIHBody getBody(double width) {
return MIHBody( return MIHBody(
borderOn: false, borderOn: false,
bodyItems: [ bodyItems: [
@@ -687,7 +696,7 @@ class _EditPatientState extends State<EditPatient> {
} }
} }
}, },
child: displayForm(), child: displayForm(width),
), ),
], ],
); );
@@ -747,61 +756,12 @@ class _EditPatientState extends State<EditPatient> {
actionButton: getActionButton(), actionButton: getActionButton(),
header: getHeader(), header: getHeader(),
secondaryActionButton: null, secondaryActionButton: null,
body: getBody(), body: getBody(width),
actionDrawer: null, actionDrawer: null,
secondaryActionDrawer: null, secondaryActionDrawer: null,
bottomNavBar: null, bottomNavBar: null,
pullDownToRefresh: false, pullDownToRefresh: false,
onPullDown: () async {}, onPullDown: () async {},
); );
// return Scaffold(
// // appBar: const MIHAppBar(
// // barTitle: "Edit Patient",
// // propicFile: null,
// // ),
// body: SafeArea(
// child: Stack(
// children: [
// KeyboardListener(
// focusNode: _focusNode,
// autofocus: true,
// onKeyEvent: (event) async {
// if (event is KeyDownEvent &&
// event.logicalKey == LogicalKeyboardKey.enter) {
// submitForm();
// }
// },
// child: displayForm(),
// ),
// Positioned(
// top: 10,
// left: 5,
// width: 50,
// height: 50,
// child: IconButton(
// onPressed: () {
// Navigator.of(context).pop();
// },
// icon: const Icon(Icons.arrow_back),
// ),
// ),
// Positioned(
// top: 10,
// right: 5,
// width: 50,
// height: 50,
// child: IconButton(
// icon: const Icon(Icons.delete),
// color:
// MzanziInnovationHub.of(context)!.theme.secondaryColor(),
// //alignment: Alignment.topRight,
// onPressed: () {
// deletePatientPopUp();
// },
// ))
// ],
// ),
// ),
// );
} }
} }