add new search to pat prof

This commit is contained in:
2025-05-30 13:41:17 +02:00
parent 14f4c9acd2
commit 08fd95043d
3 changed files with 49 additions and 31 deletions

View File

@@ -1,12 +1,13 @@
import 'package:flutter/services.dart';
import 'package:mzansi_innovation_hub/main.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_claim_statement_generation_api.dart';
import 'package:mzansi_innovation_hub/mih_apis/mih_icd10_code_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_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_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_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_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_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_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/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
@@ -64,6 +65,8 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
final ValueNotifier<String> serviceDesc = ValueNotifier(""); final ValueNotifier<String> serviceDesc = ValueNotifier("");
final ValueNotifier<String> medAid = ValueNotifier(""); final ValueNotifier<String> medAid = ValueNotifier("");
List<ICD10Code> icd10codeList = []; List<ICD10Code> icd10codeList = [];
final FocusNode _searchFocusNode = FocusNode();
final FocusNode _focusNode = FocusNode();
void icd10SearchWindow(List<ICD10Code> codeList) { void icd10SearchWindow(List<ICD10Code> codeList) {
showDialog( showDialog(
@@ -186,18 +189,35 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
}, },
), ),
//const SizedBox(height: 10), //const SizedBox(height: 10),
MIHSearchField( 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, controller: _icd10CodeController,
hintText: "ICD-10 Code & Description", hintText: "ICD-10 Code & Description",
required: true, prefixIcon: Icons.search,
editable: true, fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
onTap: () { hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
//api onPrefixIconTap: () {
MIHIcd10CodeApis.getIcd10Codes(_icd10CodeController.text, context) MIHIcd10CodeApis.getIcd10Codes(_icd10CodeController.text, context)
.then((result) { .then((result) {
icd10SearchWindow(result); icd10SearchWindow(result);
}); });
}, },
onClearIconTap: () {
_icd10CodeController.clear();
},
searchFocusNode: _searchFocusNode,
),
), ),
const SizedBox(height: 10), const SizedBox(height: 10),
MIHTextField( MIHTextField(
@@ -365,6 +385,7 @@ class _ClaimStatementWindowState extends State<ClaimStatementWindow> {
_proceedureAdditionalInfoController.dispose(); _proceedureAdditionalInfoController.dispose();
_icd10CodeController.dispose(); _icd10CodeController.dispose();
_preauthNoController.dispose(); _preauthNoController.dispose();
_searchFocusNode.dispose();
super.dispose(); super.dispose();
} }

View File

@@ -2,9 +2,9 @@ import 'dart:convert';
import 'package:mzansi_innovation_hub/main.dart'; 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_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_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_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_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_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.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<PrescripInput> { class _PrescripInputState extends State<PrescripInput> {
final FocusNode _focusNode = FocusNode(); final FocusNode _focusNode = FocusNode();
final FocusNode _searchFocusNode = FocusNode();
List<Perscription> perscriptionObjOutput = []; List<Perscription> perscriptionObjOutput = [];
late double width; late double width;
late double height; late double height;
@@ -361,28 +362,23 @@ class _PrescripInputState extends State<PrescripInput> {
getMedsPopUp(widget.medicineController); getMedsPopUp(widget.medicineController);
} }
}, },
child: MIHSearchField( child: MihSearchBar(
controller: widget.medicineController, controller: widget.medicineController,
hintText: "Medicine", hintText: "Search Medicine",
required: true, prefixIcon: Icons.search,
editable: true, fillColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
onTap: () { hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
onPrefixIconTap: () {
getMedsPopUp(widget.medicineController); getMedsPopUp(widget.medicineController);
}, },
onClearIconTap: () {
widget.medicineController.clear();
},
searchFocusNode: _searchFocusNode,
), ),
), ),
const SizedBox(height: 10.0), 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( MIHDropdownField(
controller: widget.dosageController, controller: widget.dosageController,
hintText: "Dosage", hintText: "Dosage",
@@ -544,6 +540,7 @@ class _PrescripInputState extends State<PrescripInput> {
@override @override
void dispose() { void dispose() {
_focusNode.dispose(); _focusNode.dispose();
_searchFocusNode.dispose();
super.dispose(); super.dispose();
} }

View File

@@ -423,8 +423,8 @@ class _PatientDocumentsState extends State<PatientDocuments> {
); );
} else { } else {
return Positioned( return Positioned(
right: 0, right: 10,
bottom: 0, bottom: 10,
child: MihFloatingMenu( child: MihFloatingMenu(
icon: Icons.add, icon: Icons.add,
animatedIcon: AnimatedIcons.menu_close, animatedIcon: AnimatedIcons.menu_close,