From 08fd95043d454ab80d9bd07030062fed893a37cb Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Fri, 30 May 2025 13:41:17 +0200 Subject: [PATCH] add new search to pat prof --- .../components/Claim_Statement_Window.dart | 45 ++++++++++++++----- .../pat_profile/components/prescip_input.dart | 31 ++++++------- .../package_tools/patient_documents.dart | 4 +- 3 files changed, 49 insertions(+), 31 deletions(-) diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/components/Claim_Statement_Window.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/components/Claim_Statement_Window.dart index 0344b7cb..a13a7de1 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_profile/components/Claim_Statement_Window.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/components/Claim_Statement_Window.dart @@ -1,12 +1,13 @@ +import 'package:flutter/services.dart'; import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_claim_statement_generation_api.dart'; import 'package:mzansi_innovation_hub/mih_apis/mih_icd10_code_api.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_date_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_text_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; @@ -64,6 +65,8 @@ class _ClaimStatementWindowState extends State { final ValueNotifier serviceDesc = ValueNotifier(""); final ValueNotifier medAid = ValueNotifier(""); List icd10codeList = []; + final FocusNode _searchFocusNode = FocusNode(); + final FocusNode _focusNode = FocusNode(); void icd10SearchWindow(List codeList) { showDialog( @@ -186,18 +189,35 @@ class _ClaimStatementWindowState extends State { }, ), //const SizedBox(height: 10), - MIHSearchField( - controller: _icd10CodeController, - hintText: "ICD-10 Code & Description", - required: true, - editable: true, - onTap: () { - //api - MIHIcd10CodeApis.getIcd10Codes(_icd10CodeController.text, context) - .then((result) { - icd10SearchWindow(result); - }); + KeyboardListener( + focusNode: _focusNode, + autofocus: true, + onKeyEvent: (event) async { + if (event is KeyDownEvent && + event.logicalKey == LogicalKeyboardKey.enter) { + MIHIcd10CodeApis.getIcd10Codes(_icd10CodeController.text, context) + .then((result) { + icd10SearchWindow(result); + }); + } }, + child: MihSearchBar( + controller: _icd10CodeController, + hintText: "ICD-10 Code & Description", + 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), MIHTextField( @@ -365,6 +385,7 @@ class _ClaimStatementWindowState extends State { _proceedureAdditionalInfoController.dispose(); _icd10CodeController.dispose(); _preauthNoController.dispose(); + _searchFocusNode.dispose(); super.dispose(); } diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/components/prescip_input.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/components/prescip_input.dart index c5275651..5f55396d 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_profile/components/prescip_input.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/components/prescip_input.dart @@ -2,9 +2,9 @@ import 'dart:convert'; import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart'; import 'package:mzansi_innovation_hub/mih_packages/patient_profile/pat_profile/components/medicine_search.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_dropdown_input.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart'; @@ -54,6 +54,7 @@ class PrescripInput extends StatefulWidget { class _PrescripInputState extends State { final FocusNode _focusNode = FocusNode(); + final FocusNode _searchFocusNode = FocusNode(); List perscriptionObjOutput = []; late double width; late double height; @@ -361,28 +362,23 @@ class _PrescripInputState extends State { getMedsPopUp(widget.medicineController); } }, - child: MIHSearchField( + child: MihSearchBar( controller: widget.medicineController, - hintText: "Medicine", - required: true, - editable: true, - onTap: () { + hintText: "Search Medicine", + prefixIcon: Icons.search, + fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + onPrefixIconTap: () { getMedsPopUp(widget.medicineController); }, + onClearIconTap: () { + widget.medicineController.clear(); + }, + searchFocusNode: _searchFocusNode, ), ), const SizedBox(height: 10.0), - // SizedBox( - // width: 300, - // child: MIHDropdownField( - // controller: widget.quantityController, - // hintText: "Quantity", - // dropdownOptions: numberOptions, - // required: true, - // editable: true, - // ), - // ), - // const SizedBox(height: 10.0), + MIHDropdownField( controller: widget.dosageController, hintText: "Dosage", @@ -544,6 +540,7 @@ class _PrescripInputState extends State { @override void dispose() { _focusNode.dispose(); + _searchFocusNode.dispose(); super.dispose(); } diff --git a/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_documents.dart b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_documents.dart index c0719953..544bbe2c 100644 --- a/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_documents.dart +++ b/Frontend/lib/mih_packages/patient_profile/pat_profile/package_tools/patient_documents.dart @@ -423,8 +423,8 @@ class _PatientDocumentsState extends State { ); } else { return Positioned( - right: 0, - bottom: 0, + right: 10, + bottom: 10, child: MihFloatingMenu( icon: Icons.add, animatedIcon: AnimatedIcons.menu_close,