diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 95c2b501..b9a0b7b0 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1204,6 +1204,8 @@ const Map> localizedValues = { "noPhysicalExamination": {"en": "No Physical Examination added, please add it from the button above", "ar":"لم يتم إضافة فحص بدني ، يرجى إضافته من الزر أعلاه"}, "noProgressNote": {"en": "No Diagnosis added, please add it from the button above", "ar":"لم يتم إضافة تشخيص ، يرجى إضافته من الزر أعلاه"}, "mild": {"en": "Mild", "ar":"خفيف"}, + "remarksCanNotBeEmpty": {"en": "Remarks Can Not Be Empty", "ar":"لا يمكن أن تكون الملاحظات فارغة"}, + "kindlySelectCategory": {"en": "Kindly Select Any Diagnosis Category", "ar":"يرجى اختيار أي فئة تشخيص"}, "noRemarks": {"en": "No Remarks", "ar":"لا ملاحظات"}, "event": {"en": "Event: ", "ar":"حدث: "}, "deletedRemarks": {"en": "Deleted Remarks: ", "ar":"ملاحظات محذوفة: "}, diff --git a/lib/core/model/SOAP/physical_exam/Category.dart b/lib/core/model/SOAP/physical_exam/Category.dart index 84cecfcc..975af7c4 100644 --- a/lib/core/model/SOAP/physical_exam/Category.dart +++ b/lib/core/model/SOAP/physical_exam/Category.dart @@ -42,6 +42,7 @@ class Category { String? pomrId; int? paitientId; int? userID; + bool isExpanded = false; Category(); @@ -55,6 +56,7 @@ class Category { conditionsList!.add(Condition.fromJson(v)); }); } + if(conditionsList?.isNotEmpty == true) selectedCondition = int.parse(conditionsList?.first.conditionName ??'-1'); description = json['description']; descriptionAlias = json['descriptionAlias']; id = json['id']; diff --git a/lib/core/model/SOAP/physical_exam/CreatePhysicalExamination.dart b/lib/core/model/SOAP/physical_exam/CreatePhysicalExamination.dart index b97999f4..ac77890d 100644 --- a/lib/core/model/SOAP/physical_exam/CreatePhysicalExamination.dart +++ b/lib/core/model/SOAP/physical_exam/CreatePhysicalExamination.dart @@ -67,5 +67,8 @@ extension ConvertCategoryToCreatePhysicalExamination on Category { ..specialityID = this.specialityId ..patientID = this.paitientId ..pomrid = this.pomrId - ..loginUserId = this.userID?.toString(); + ..loginUserId = this.userID?.toString() + ..isMandatory = false + ..specialityDescription = this.specialityName + ..isClinicPhysicalExamination = true; } diff --git a/lib/core/model/SOAP/physical_exam/patient_physical_examination.dart b/lib/core/model/SOAP/physical_exam/patient_physical_examination.dart index 9938648f..ec4253a6 100644 --- a/lib/core/model/SOAP/physical_exam/patient_physical_examination.dart +++ b/lib/core/model/SOAP/physical_exam/patient_physical_examination.dart @@ -25,7 +25,7 @@ class PatientPhysicalExamination { int? approvedBy; String? approvedOn; String? rowVersion; - int? pomrid; + String? pomrid; // Default constructor PatientPhysicalExamination(); diff --git a/lib/core/service/patient_medical_file/soap/SOAP_service.dart b/lib/core/service/patient_medical_file/soap/SOAP_service.dart index 934f0ea0..88a1ac46 100644 --- a/lib/core/service/patient_medical_file/soap/SOAP_service.dart +++ b/lib/core/service/patient_medical_file/soap/SOAP_service.dart @@ -834,7 +834,16 @@ class SOAPService extends LookupService { ) async { Map? user = await sharedPref.getObj(LOGGED_IN_USER); - Map request = { + Map request = + // { + // "patientId": 70024978, + // "pomrId": 10819, + // "hospitalId": 313, + // "hospitalGroupId": 105, + // "ProjectID": 313 + // }; + + { "patientId": patientInfo.patientId, "pomrId": patientInfo.pomrId, "hospitalId": patientInfo.projectId, @@ -855,40 +864,42 @@ class SOAPService extends LookupService { }, body: request); } - Future postPhysicalExamination(PatiantInformtion patientInfo, - List physicalExamination) async { + Future postPhysicalExamination( + PatiantInformtion patientInfo, List physicalExamination) async { List jsonListOfPhysicalExamination = []; - physicalExamination - .forEach((value) => jsonListOfPhysicalExamination.add(value.createPhysicalExaminationFromCategory())); + physicalExamination.forEach((value) => jsonListOfPhysicalExamination + .add(value.createPhysicalExaminationFromCategory())); Map request = { - "ProjectID": patientInfo.patientId, + "ProjectID": patientInfo.projectId, "listCreatPhysicalExam": jsonListOfPhysicalExamination }; hasError = false; - bool data = await baseAppClient.post(POST_PHYSICAL_EXAM, + var success = false; + await baseAppClient.post(POST_PHYSICAL_EXAM, onSuccess: (dynamic response, int statusCode) { DrAppToastMsg.showSuccesToast(response['ListPhysicalExam']['message']); - return true; + success = true; }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; - return false; + success = false; }, body: request); - return data; + return success; } getGeneralSpeciality(PatiantInformtion patientInfo) async { Map request = { - "ProjectID": patientInfo.patientId, + "ProjectID": patientInfo.projectId, }; hasError = false; generalSpeciality.clear(); await baseAppClient.post(GET_GENERAL_SPECIALITY, onSuccess: (dynamic response, int statusCode) { - response['ListGeneralSpeciality']['resultData'] - .forEach((v) => generalSpeciality.add(GeneralSpeciality.fromJson(v))); + response['ListGeneralSpeciality']['resultData'].forEach((v) => + v['categories'].forEach( + (cat) => generalSpeciality.add(GeneralSpeciality.fromJson(cat)))); }, onFailure: (String error, int statusCode) { hasError = true; generalSpeciality.clear(); @@ -963,8 +974,7 @@ class SOAPService extends LookupService { }, body: request); } - Future getProgressNoteNew( - PatiantInformtion patientInformation) async { + Future getProgressNoteNew(PatiantInformtion patientInformation) async { Map request = { "hospitalGroupId": await sharedPref.getString(DOCTOR_SETUP_ID), "hospitalId": patientInformation.projectId, @@ -972,37 +982,43 @@ class SOAPService extends LookupService { "patientPomrId": patientInformation.pomrId, "endRow": 10000, // because no information is provided for the end row "startRow": 0, - "ProjectID":patientInformation.projectId + "ProjectID": patientInformation.projectId }; hasError = false; await baseAppClient.post(GET_PROGRESS_NOTE, onSuccess: (dynamic response, int statusCode) { - print("Success"); - patientProgressNoteListVidaPlus.clear(); - response['ProgressNoteList']['resultData'].forEach((v) { - v['data'].forEach((progressNote){ - patientProgressNoteListVidaPlus.add(ProgressNote.fromJson(progressNote)); - - }); - }); - }, onFailure: (String error, int statusCode) { - hasError = true; - super.error = error; - }, body: request); + print("Success"); + patientProgressNoteListVidaPlus.clear(); + response['ProgressNoteList']['resultData'].forEach((v) { + v['data'].forEach((progressNote) { + patientProgressNoteListVidaPlus + .add(ProgressNote.fromJson(progressNote)); + }); + }); + }, onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: request); } - getSpecialityDetails(String speciality, int? specialityId, PatiantInformtion patientInfo) async { Map? user = await sharedPref.getObj(LOGGED_IN_USER); var userId = user?['List_MemberInformation'][0]['MemberID']; Map request = {"searchParam": speciality}; hasError = false; + specialityDetails.clear(); List categoryData = []; - await baseAppClient.post(MAKE_PREVIOUS_AS_CURRENT_DIAGNOSIS, + await baseAppClient.post(GET_SPECIALITY_DETAILS, onSuccess: (dynamic response, int statusCode) { - response['ContinuePreviousEpisode']['resultData'].forEach( - (value) => categoryData.add(Category.fromJson(value, specialityId, speciality,patientInfo.pomrId,patientInfo.patientId,user?['List_MemberInformation'][0]['MemberID']))); + response['ListEyeGeneralSpeciality']['resultData'].forEach((value) => + categoryData.add(Category.fromJson( + value, + specialityId, + speciality, + patientInfo.pomrId, + patientInfo.patientId, + user?['List_MemberInformation'][0]['MemberID']))); }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; diff --git a/lib/core/viewModel/SOAP_view_model.dart b/lib/core/viewModel/SOAP_view_model.dart index 668e8b7d..870272fc 100644 --- a/lib/core/viewModel/SOAP_view_model.dart +++ b/lib/core/viewModel/SOAP_view_model.dart @@ -48,6 +48,7 @@ import 'package:doctor_app_flutter/screens/patients/profile/soap_update/assessme import 'package:doctor_app_flutter/screens/patients/profile/soap_update/objective/objective_call_back.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/plan/plan_call_back.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/subjective/subjective_call_back.dart'; +import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import '../../locator.dart'; import '../model/SOAP/allergy/get_patient_allergies_list_vida_plus.dart'; @@ -147,7 +148,8 @@ class SOAPViewModel extends BaseViewModel { List get auditDiagnosislist => _SOAPService.auditDiagnosislist; - List get speciality => _SOAPService.generalSpeciality; + List? mainSpecialityList = null; + List speciality = []; List get progressNote => _SOAPService.patientProgressNoteListVidaPlus; @@ -1181,16 +1183,21 @@ class SOAPViewModel extends BaseViewModel { setState(ViewState.Idle); } - Future postPhysicalExamination(PatiantInformtion patientInfo) async { - setState(ViewState.BusyLocal); + + List getListOfSelectedCategory(){ List mappedItems = []; for (List category in specialityDetails.values) { var selectedCategory = - category.where((value) => value.isSelected == true); + category.where((value) => value.isSelected == true); mappedItems.addAll(selectedCategory); } + return mappedItems; + } + + Future postPhysicalExamination(PatiantInformtion patientInfo, List listOfSelectedCategory) async { + setState(ViewState.BusyLocal); bool result = - await _SOAPService.postPhysicalExamination(patientInfo, mappedItems); + await _SOAPService.postPhysicalExamination(patientInfo, listOfSelectedCategory); if (_SOAPService.hasError) { error = _SOAPService.error; setState(ViewState.ErrorLocal); @@ -1200,9 +1207,11 @@ class SOAPViewModel extends BaseViewModel { return result; } - void getGeneralSpeciality(PatiantInformtion patientInfo) async { + getGeneralSpeciality(PatiantInformtion patientInfo) async { setState(ViewState.BusyLocal); await _SOAPService.getGeneralSpeciality(patientInfo); + mainSpecialityList = _SOAPService.generalSpeciality; + speciality = mainSpecialityList ?? []; if (_SOAPService.hasError) { error = _SOAPService.error; setState(ViewState.ErrorLocal); @@ -1210,7 +1219,7 @@ class SOAPViewModel extends BaseViewModel { setState(ViewState.Idle); } - void getSpecialityDetails(String speciality, int? specialityId, + getSpecialityDetails(String speciality, int? specialityId, PatiantInformtion patientInfo) async { setState(ViewState.BusyLocal); await _SOAPService.getSpecialityDetails( @@ -1230,7 +1239,7 @@ class SOAPViewModel extends BaseViewModel { _SOAPService.showAuditBottomSheet = status; } - void getProgressNote(PatiantInformtion patientInformation) async { + getProgressNote(PatiantInformtion patientInformation) async { setState(ViewState.BusyLocal); await _SOAPService.getProgressNoteNew(patientInformation); if (_SOAPService.hasError) { @@ -1239,4 +1248,26 @@ class SOAPViewModel extends BaseViewModel { } else setState(ViewState.Idle); } + + void changeCurrentCategorySelectedState( + GeneralSpeciality selectedExamination, bool status) { + final item = speciality.firstWhere( + (speciality) => speciality.id == selectedExamination.id, + orElse: () => throw Exception( + 'Speciality with ID ${selectedExamination.id} not found!'), + ); + item.isSelected = status; + notifyListeners(); + } + + void filterData(String query) { + if (query.isEmpty) { + speciality = mainSpecialityList ?? []; + } + var searchList = + mainSpecialityList?.where((value) => value.name?.toLowerCase().contains(query.toLowerCase()) == true).toList() ?? + []; + speciality = searchList; + notifyListeners(); + } } diff --git a/lib/screens/patients/profile/soap_update_vida_plus/objective/add_details_to_examination_vida_plus.dart b/lib/screens/patients/profile/soap_update_vida_plus/objective/add_details_to_examination_vida_plus.dart index fe9bcf38..6abbdb52 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/objective/add_details_to_examination_vida_plus.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/objective/add_details_to_examination_vida_plus.dart @@ -4,11 +4,13 @@ import 'package:doctor_app_flutter/core/model/SOAP/physical_exam/GeneralSpeciali import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_examination.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; +import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/expandable_SOAP_widget.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/objective/widget/examination_items.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/subjective/chief_complaint/widgets/add_soap_item.dart'; +import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; @@ -34,7 +36,7 @@ class AddDetailsToExaminationVidaPlus extends StatefulWidget { class _AddDetailsToExaminationVidaPlusState extends State { - bool isSysExaminationExpand = false; + String currentlyExpanded = ''; @override Widget build(BuildContext context) { @@ -42,12 +44,12 @@ class _AddDetailsToExaminationVidaPlusState ProjectViewModel projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) async { + WidgetsBinding.instance.addPostFrameCallback((_) async { widget.mySelectedExamination?.forEach((value) => model.getSpecialityDetails( - value.name ?? '', value.id, widget.patientInfo)); + value.name ?? '', value.id, widget.patientInfo));}); }, builder: (_, model, w) => AppScaffold( - baseViewModel: model, isShowAppBar: true, isLoading: model.state == ViewState.BusyLocal, appBar: PatientSearchHeader( @@ -66,13 +68,14 @@ class _AddDetailsToExaminationVidaPlusState headerTitle: title, onTap: () { setState(() { - isSysExaminationExpand = - !isSysExaminationExpand; + if(currentlyExpanded == title) { + currentlyExpanded = ''; + }else currentlyExpanded = title; }); }, child: ExaminationItems( examination: model.specialityDetails[title]), - isExpanded: isSysExaminationExpand, + isExpanded: currentlyExpanded == title, ); }, separatorBuilder: (context, index) { @@ -112,7 +115,26 @@ class _AddDetailsToExaminationVidaPlusState fontColor: Colors.white, fontWeight: FontWeight.w600, onPressed: () async { - model.postPhysicalExamination(widget.patientInfo,); + var listOfSelectedCategory = model.getListOfSelectedCategory(); + if(listOfSelectedCategory.isEmpty){ + DrAppToastMsg.showErrorToast(TranslationBase.of(context).kindlySelectCategory); + return; + } + if(listOfSelectedCategory.any((value) => value.remarksController.text.isEmpty)){ + DrAppToastMsg.showErrorToast(TranslationBase.of(context).remarksCanNotBeEmpty); + return; + } + var result = await model.postPhysicalExamination(widget.patientInfo,listOfSelectedCategory); + if(result){ + model.getPhysicalExamination(widget.patientInfo); + Navigator.popUntil(context, ((route) { + if (route.settings.name == UPDATE_EPISODE_VIDA_PLUS) { + return true; + } else { + return false; + } + })); + } }, ), ), diff --git a/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_page_vida_plus.dart b/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_page_vida_plus.dart index de5f06a1..56140917 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_page_vida_plus.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_page_vida_plus.dart @@ -45,27 +45,22 @@ class _AddExaminationPageVidaPlusState Widget build(BuildContext context) { return BaseView( onModelReady: (model) async { - if (model.physicalExaminationList.length == 0) { - WidgetsBinding.instance.addPostFrameCallback((_) async { - if (model.speciality.isEmpty) { - await model.getGeneralSpeciality(widget.patientInfo); - } - }); - } + WidgetsBinding.instance.addPostFrameCallback((_) async => + await model.getGeneralSpeciality(widget.patientInfo) + ); }, builder: (_, model, w) => AppScaffold( - baseViewModel: model, isShowAppBar: true, - isLoading: model.state == ViewState.Busy, + isLoading: model.state == ViewState.BusyLocal, appBar: PatientSearchHeader( title: TranslationBase.of(context).examinationPart), backgroundColor: Colors.white, - body: Column( - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.max, - children: [ - Flexible( - child: Padding( + body: SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + Padding( padding: const EdgeInsets.all(16.0), child: Material( shape: RoundedRectangleBorder( @@ -75,60 +70,35 @@ class _AddExaminationPageVidaPlusState color: Color(0xFFEFEFEF), )), color: Colors.white, - child: Padding( - padding: const EdgeInsets.all(16.0), - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - ExaminationsListSearchVidaPlusWidget( - masterList: model.speciality, - removeExamination: (selectedExamination) { - if(selectedExamination == null ) return; - - setState(() { - mySelectedExaminationLocal - .remove(selectedExamination); - // Find the object by its ID - try { - final speciality = - model.speciality.firstWhere( - (speciality) => - speciality.id == selectedExamination.id, - orElse: () => throw Exception( - 'Speciality with ID ${selectedExamination.id} not found!'), - ); - - speciality.isSelected = false; - } catch (e) {} - }); - }, - addExamination: (selectedExamination) { - if(selectedExamination == null ) return; - - mySelectedExaminationLocal.insert( - 0, selectedExamination); - - try { - final speciality = model.speciality.firstWhere( - (speciality) => - speciality.id == selectedExamination.id, - orElse: () => throw Exception( - 'Speciality with ID ${selectedExamination.id} not found!'), - ); - speciality.isSelected = true; - } catch (e) {} - //setState(() {}); - }, - ), - ], - ), - ), + child: ExaminationsListSearchVidaPlusWidget( + masterList: model.speciality, + removeExamination: (selectedExamination) { + if(selectedExamination == null ) return; + setState(() { + mySelectedExaminationLocal + .remove(selectedExamination); + // Find the object by its ID + try { + model.changeCurrentCategorySelectedState(selectedExamination, false); + } catch (e) {} + }); + }, + addExamination: (selectedExamination) { + if(selectedExamination == null ) return; + + mySelectedExaminationLocal.insert( + 0, selectedExamination); + + try { + model.changeCurrentCategorySelectedState(selectedExamination, true); + } catch (e) {} + //setState(() {}); + }, ), ), ), - ), - ], + ], + ), ), bottomNavigationBar: Material( color: Colors.white, @@ -157,6 +127,10 @@ class _AddExaminationPageVidaPlusState fontColor: Colors.white, fontWeight: FontWeight.w600, onPressed: () async { + if(mySelectedExaminationLocal.isEmpty){ + DrAppToastMsg.showErrorToast(TranslationBase.of(context).kindlySelectCategory); + return; + } pushAddExamination(mySelectedExaminationLocal); }, ), diff --git a/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_vida_plus_widget.dart b/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_vida_plus_widget.dart index 90fec299..5721dc70 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_vida_plus_widget.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/objective/add_examination_vida_plus_widget.dart @@ -77,7 +77,7 @@ class _AddExaminationVidaPlusWidgetState extends State( + + builder: (_, model, w) => Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + Material( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + side: BorderSide( + width: 1, + color: Color(0xFFEFEFEF), + )), + color: Colors.white, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: AppTextFieldCustom( + height: Utils.getTextFieldHeight(), + hintText: TranslationBase.of(context).searchExamination, + isTextFieldHasSuffix: false, + hasBorder: false, + controller: filteredSearchController, + onChanged: (value) { + if (value != null) filterSearchResults(model,value); + }, + suffixWidget: InkWell( + child: Icon( + Icons.search, + color: Colors.black, + ), + onTap: () {}, ), - onTap: () {}, + onClick: () {}, + onFieldSubmitted: () {}, ), - onClick: () {}, - onFieldSubmitted: () {}, ), ), - ), - ListView.separated( - itemCount: items?.length ?? 0, - itemBuilder: (_, index) => AddExaminationVidaPlusWidget( - item: items![index], - addExamination: widget.addExamination, - removeExamination: widget.removeExamination, - ), - separatorBuilder: (_, __) => Divider(), - ) - // ...items!.mapIndexed((index, item) { - // return Column( - // children: [ - // AddExaminationVidaPlusWidget( - // item: item, - // addExamination: widget.addExamination, - // removeExamination: widget.removeExamination, - // mySelectedExamination: widget.mySelectedExamination, - // isServiceSelected: widget.isServiceSelected, - // isExpand: index == expandedIndex, - // expandClick: () { - // setState(() { - // if (expandedIndex == index) { - // expandedIndex = -1; - // } else { - // expandedIndex = index; - // } - // }); - // }, - // ), - // Divider() - // ], - // ); - // }).toList(), - ], - ); + + ...model.speciality.mapIndexed((index, item) { + return Column( + children: [ + AddExaminationVidaPlusWidget( + item: item, + addExamination: widget.addExamination, + removeExamination: widget.removeExamination, + ), + SizedBox(height: 8,), + Divider() + ], + ); + }).toList(), + ], + ), + )); } - void filterSearchResults(String query) { + void filterSearchResults(SOAPViewModel model,String query) { + model.filterData(query); // List dummySearchList = []; // dummySearchList.addAll(widget.masterList as Iterable); // if (query.isNotEmpty) { diff --git a/lib/screens/patients/profile/soap_update_vida_plus/objective/list_of_examination.dart b/lib/screens/patients/profile/soap_update_vida_plus/objective/list_of_examination.dart index 01f4ce6d..38f716c7 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/objective/list_of_examination.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/objective/list_of_examination.dart @@ -21,7 +21,7 @@ class ListOfExamination extends StatelessWidget { physics: NeverScrollableScrollPhysics(), shrinkWrap: true, itemBuilder: (_, index) => SoapDetailItem( - title: "${listOfSelection[index].physicalExaminationDescription}", + title: "${listOfSelection[index].specialityDescription}>${listOfSelection[index].physicalExaminationDescription}", condition: getCondition(listOfSelection[index].physicalExaminationCondition ?? 3, context)??TranslationBase.of(context).notExamined, remarks: listOfSelection[index].remark??'', onSoapDetailActionClicked: (action) { diff --git a/lib/screens/patients/profile/soap_update_vida_plus/objective/update_objective_page_vida_plus.dart b/lib/screens/patients/profile/soap_update_vida_plus/objective/update_objective_page_vida_plus.dart index 008ec26e..6cadab91 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/objective/update_objective_page_vida_plus.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/objective/update_objective_page_vida_plus.dart @@ -72,14 +72,16 @@ class _UpdateObjectivePageVidaPlusState return BaseView( onModelReady: (model) async { WidgetsBinding.instance.addPostFrameCallback((_) async { - if (model.patientPhysicalExaminationList == 0) { + widget.changeLoadingState(true); + model.getPhysicalExamination(widget.patientInfo); - } + widget.changeLoadingState(false); }); }, builder: (_, model, w) => AppScaffold( isShowAppBar: false, + isLoading: model.state == ViewState.BusyLocal, backgroundColor: Theme.of(context).scaffoldBackgroundColor, body: SingleChildScrollView( physics: ScrollPhysics(), @@ -119,7 +121,7 @@ class _UpdateObjectivePageVidaPlusState height: 16, ), - if (mySelectedExamination.isEmpty) ...{ + if (model.patientPhysicalExaminationList.isEmpty) ...{ Center( child: Padding( padding: const EdgeInsets.all(65), @@ -130,7 +132,7 @@ class _UpdateObjectivePageVidaPlusState } else ...{ Divider(), ListOfExamination( - listOfSelection: mySelectedExamination) + listOfSelection: model.patientPhysicalExaminationList) } // if (mySelectedExamination.isNotEmpty && mySelectedExamination.first.isLocal) diff --git a/lib/screens/patients/profile/soap_update_vida_plus/objective/widget/examination_items.dart b/lib/screens/patients/profile/soap_update_vida_plus/objective/widget/examination_items.dart index 35013e5a..088b3845 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/objective/widget/examination_items.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/objective/widget/examination_items.dart @@ -28,321 +28,623 @@ class _ExaminationItemsState extends State { void initState() { // TODO: implement initState super.initState(); - this.examinations = examinations; + this.examinations = widget.examination; } @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); - return Column( - children: [ - Expanded( - child: ListView.builder( - itemCount: examinations?.length ?? 0, - itemBuilder: (context, index) => Column( - children: [ - ListTileTheme( - horizontalTitleGap: 0, - child: CheckboxListTile( - activeColor: Color(0xFFD02127), - checkColor: Colors.white, - contentPadding: EdgeInsets.zero, - side: MaterialStateBorderSide.resolveWith( + return SingleChildScrollView( + child: Column( + children: examinations?.map((value)=> Column( + children: [ + ListTileTheme( + horizontalTitleGap: 0, + child: CheckboxListTile( + activeColor: Color(0xFFD02127), + checkColor: Colors.white, + contentPadding: EdgeInsets.zero, + side: MaterialStateBorderSide.resolveWith( (Set states) { - if (states.contains(MaterialState.selected)) { - return const BorderSide(color: Color(0xFFD02127)); - } - return const BorderSide(color: Color(0xFFE6E6E6)); - }, - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(16)), - value: examinations?[index].isSelected, - controlAffinity: ListTileControlAffinity.leading, - onChanged: (bool? value) { - setState(() { - examinations?[index].isSelected = value ?? false; - }); - }, - title: AppText( - examinations![index].name!, - color: Color(0XFF575757), - fontSize: 14, - fontWeight: FontWeight.w400, + if (states.contains(MaterialState.selected)) { + return const BorderSide(color: Color(0xFFD02127)); + } + return const BorderSide(color: Color(0xFFE6E6E6)); + }, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16)), + value: value.isSelected, + controlAffinity: ListTileControlAffinity.leading, + onChanged: (bool? selected) { + setState(() { + value?.isSelected = selected ?? false; + }); + }, + title: AppText( + value.name!, + color: Color(0XFF575757), + fontSize: 14, + fontWeight: FontWeight.w400, + ), + ), + ), + (value.isSelected == true) + ? Container( + padding: EdgeInsets.symmetric(horizontal: 12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + margin: EdgeInsets.only(bottom: 8), + child: AppText( + TranslationBase.of(context).condition, + fontWeight: FontWeight.bold, + fontFamily: 'Poppins', + fontSize: SizeConfig.textMultiplier! * 1.6, ), ), - ), - (examinations?[index].isSelected == true) - ? Container( - padding: EdgeInsets.symmetric(horizontal: 12), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - margin: EdgeInsets.only(bottom: 8), - child: AppText( - TranslationBase.of(context).condition, - fontWeight: FontWeight.bold, - fontFamily: 'Poppins', - fontSize: SizeConfig.textMultiplier! * 1.6, + SizedBox( + width: MediaQuery.sizeOf(context).width, + height: 24, + child: ListView.builder( + shrinkWrap: true, + scrollDirection: Axis.horizontal, + itemCount: value + .conditionsList + ?.length ?? + 0, + itemBuilder: (context, currentIndex) => InkWell( + onTap: () { + setState(() { + value + .selectedCondition = + int.parse(value + .conditionsList?[ + currentIndex] + .conditionName ?? + "-1"); + }); + }, + child: Row( + children: [ + Container( + padding: EdgeInsets.all(2.0), + margin: EdgeInsets.symmetric( + horizontal: 6), + width: 20, + height: 20, + decoration: BoxDecoration( + color: Colors.white, + shape: BoxShape.circle, + border: Border.all( + color: Colors.grey, width: 1), + ), + child: Container( + decoration: BoxDecoration( + color: value + .selectedCondition == + int.parse(value + .conditionsList?[ + currentIndex] + .conditionName ?? + "-1") + ? HexColor("#D02127") + : Colors.white, + shape: BoxShape.circle, + ), + ), ), - ), - SizedBox( - width: MediaQuery.sizeOf(context).width, - height: 24, - child: ListView.builder( - shrinkWrap: true, - scrollDirection: Axis.horizontal, - itemCount: examinations?[index] - .conditionsList - ?.length ?? - 0, - itemBuilder: (context, currentIndex) => InkWell( - onTap: () { - setState(() { - examinations?[index] - .selectedCondition = - int.parse(examinations?[index] - .conditionsList?[ - currentIndex] - .conditionName ?? - "-1"); - }); - }, - child: Row( - children: [ - Container( - padding: EdgeInsets.all(2.0), - margin: EdgeInsets.symmetric( - horizontal: 6), - width: 20, - height: 20, - decoration: BoxDecoration( - color: Colors.white, - shape: BoxShape.circle, - border: Border.all( - color: Colors.grey, width: 1), - ), - child: Container( - decoration: BoxDecoration( - color: examinations?[index] - .selectedCondition == - int.parse(examinations?[ - index] - .conditionsList?[ - currentIndex] - .conditionName ?? - "-1") - ? HexColor("#D02127") - : Colors.white, - shape: BoxShape.circle, - ), - ), - ), - AppText( - examinations?[index] - .conditionsList?[ - currentIndex] - .conditionCode ?? - '', - fontWeight: FontWeight.normal, - fontFamily: 'Poppins', - fontSize: - SizeConfig.textMultiplier! * - 1.6, - ), - ], - ), - )), - ), - // Row( - // children: [ - // if(examinations?[index] - // .conditionsList?.length == 1) - // Expanded( - // child: InkWell( - // onTap: () { - // setState(() { - // examinations?[index].selectedCondition = - // int.parse(examinations?[index] - // .conditionsList?[0] - // .conditionName ?? - // "-1"); - // }); - // }, - // child: Row( - // children: [ - // Container( - // padding: EdgeInsets.all(2.0), - // margin: - // EdgeInsets.symmetric(horizontal: 6), - // width: 20, - // height: 20, - // decoration: BoxDecoration( - // color: Colors.white, - // shape: BoxShape.circle, - // border: Border.all( - // color: Colors.grey, width: 1), - // ), - // child: Container( - // decoration: BoxDecoration( - // color: examinations?[index].selectedCondition == - // int.parse(examinations?[index] - // .conditionsList?[0] - // .conditionName ?? - // "-1") - // ? HexColor("#D02127") - // : Colors.white, - // shape: BoxShape.circle, - // ), - // ), - // ), - // AppText( - // examinations?[index] - // .conditionsList?[0] - // .conditionCode ?? - // TranslationBase.of(context).normal, - // fontWeight: FontWeight.normal, - // fontFamily: 'Poppins', - // fontSize: - // SizeConfig.textMultiplier! * 1.6, - // ), - // ], - // ), - // )), - // Expanded( - // child: InkWell( - // onTap: () { - // setState(() { - // setState(() { - // examinations?[index].selectedCondition = - // int.parse(examinations?[index] - // .conditionsList?[1] - // .conditionName ?? - // "-1"); - // }); - // }); - // }, - // child: Row( - // children: [ - // Container( - // padding: EdgeInsets.all(2.0), - // margin: - // EdgeInsets.symmetric(horizontal: 6), - // width: 20, - // height: 20, - // decoration: BoxDecoration( - // color: Colors.white, - // shape: BoxShape.circle, - // border: Border.all( - // color: Colors.grey, width: 1), - // ), - // child: Container( - // decoration: BoxDecoration( - // color: examinations?[index].selectedCondition == - // int.parse(examinations?[index] - // .conditionsList?[1] - // .conditionName ?? - // "-1") - // ? HexColor("#D02127") - // : Colors.white, - // shape: BoxShape.circle, - // ), - // ), - // ), - // AppText( - // examinations?[index] - // .conditionsList?[1] - // .conditionCode ?? - // TranslationBase.of(context).abnormal, - // fontWeight: FontWeight.normal, - // fontFamily: 'Poppins', - // fontSize: - // SizeConfig.textMultiplier! * 1.6, - // ), - // ], - // ), - // )), - // Expanded( - // child: InkWell( - // onTap: () { - // setState(() { - // setState(() { - // examinations?[index].selectedCondition = - // int.parse(examinations?[index] - // .conditionsList?[2] - // .conditionName ?? - // "-1"); - // }); - // }); - // - // }, - // child: Row( - // children: [ - // Container( - // padding: EdgeInsets.all(2.0), - // margin: - // EdgeInsets.symmetric(horizontal: 6), - // width: 20, - // height: 20, - // decoration: BoxDecoration( - // color: Colors.white, - // shape: BoxShape.circle, - // border: Border.all( - // color: Colors.grey, width: 1), - // ), - // child: Container( - // decoration: BoxDecoration( - // color: examinations?[index].selectedCondition == - // int.parse(examinations?[index] - // .conditionsList?[2] - // .conditionName ?? - // "-1") - // ? HexColor("#D02127") - // : Colors.white, - // shape: BoxShape.circle, - // ), - // ), - // ), - // Expanded( - // child: AppText( - // examinations?[index] - // .conditionsList?[2] - // .conditionCode ?? - // TranslationBase.of(context).notExamined, - // fontWeight: FontWeight.normal, - // fontFamily: 'Poppins', - // fontSize: - // SizeConfig.textMultiplier! * 1.6, - // ), - // ), - // ], - // ), - // )), - // ], - // ), - Container( - margin: EdgeInsets.only(top: 8), - child: AppTextFieldCustom( - hintText: TranslationBase.of(context).remarks, - controller: examinations?[index].remarksController, - minLines: 2, - maxLines: 4, - inputType: TextInputType.multiline, - onChanged: (value) {}, - onClick: () {}, - onFieldSubmitted: () {}, + AppText( + value + .conditionsList?[ + currentIndex] + .conditionCode ?? + '', + fontWeight: FontWeight.normal, + fontFamily: 'Poppins', + fontSize: + SizeConfig.textMultiplier! * + 1.6, ), - ), - ], - ), - ) - : SizedBox.shrink(), - ], - ), - ), - ), - ], + ], + ), + )), + ), + // Row( + // children: [ + // if(examinations?[index] + // .conditionsList?.length == 1) + // Expanded( + // child: InkWell( + // onTap: () { + // setState(() { + // examinations?[index].selectedCondition = + // int.parse(examinations?[index] + // .conditionsList?[0] + // .conditionName ?? + // "-1"); + // }); + // }, + // child: Row( + // children: [ + // Container( + // padding: EdgeInsets.all(2.0), + // margin: + // EdgeInsets.symmetric(horizontal: 6), + // width: 20, + // height: 20, + // decoration: BoxDecoration( + // color: Colors.white, + // shape: BoxShape.circle, + // border: Border.all( + // color: Colors.grey, width: 1), + // ), + // child: Container( + // decoration: BoxDecoration( + // color: examinations?[index].selectedCondition == + // int.parse(examinations?[index] + // .conditionsList?[0] + // .conditionName ?? + // "-1") + // ? HexColor("#D02127") + // : Colors.white, + // shape: BoxShape.circle, + // ), + // ), + // ), + // AppText( + // examinations?[index] + // .conditionsList?[0] + // .conditionCode ?? + // TranslationBase.of(context).normal, + // fontWeight: FontWeight.normal, + // fontFamily: 'Poppins', + // fontSize: + // SizeConfig.textMultiplier! * 1.6, + // ), + // ], + // ), + // )), + // Expanded( + // child: InkWell( + // onTap: () { + // setState(() { + // setState(() { + // examinations?[index].selectedCondition = + // int.parse(examinations?[index] + // .conditionsList?[1] + // .conditionName ?? + // "-1"); + // }); + // }); + // }, + // child: Row( + // children: [ + // Container( + // padding: EdgeInsets.all(2.0), + // margin: + // EdgeInsets.symmetric(horizontal: 6), + // width: 20, + // height: 20, + // decoration: BoxDecoration( + // color: Colors.white, + // shape: BoxShape.circle, + // border: Border.all( + // color: Colors.grey, width: 1), + // ), + // child: Container( + // decoration: BoxDecoration( + // color: examinations?[index].selectedCondition == + // int.parse(examinations?[index] + // .conditionsList?[1] + // .conditionName ?? + // "-1") + // ? HexColor("#D02127") + // : Colors.white, + // shape: BoxShape.circle, + // ), + // ), + // ), + // AppText( + // examinations?[index] + // .conditionsList?[1] + // .conditionCode ?? + // TranslationBase.of(context).abnormal, + // fontWeight: FontWeight.normal, + // fontFamily: 'Poppins', + // fontSize: + // SizeConfig.textMultiplier! * 1.6, + // ), + // ], + // ), + // )), + // Expanded( + // child: InkWell( + // onTap: () { + // setState(() { + // setState(() { + // examinations?[index].selectedCondition = + // int.parse(examinations?[index] + // .conditionsList?[2] + // .conditionName ?? + // "-1"); + // }); + // }); + // + // }, + // child: Row( + // children: [ + // Container( + // padding: EdgeInsets.all(2.0), + // margin: + // EdgeInsets.symmetric(horizontal: 6), + // width: 20, + // height: 20, + // decoration: BoxDecoration( + // color: Colors.white, + // shape: BoxShape.circle, + // border: Border.all( + // color: Colors.grey, width: 1), + // ), + // child: Container( + // decoration: BoxDecoration( + // color: examinations?[index].selectedCondition == + // int.parse(examinations?[index] + // .conditionsList?[2] + // .conditionName ?? + // "-1") + // ? HexColor("#D02127") + // : Colors.white, + // shape: BoxShape.circle, + // ), + // ), + // ), + // Expanded( + // child: AppText( + // examinations?[index] + // .conditionsList?[2] + // .conditionCode ?? + // TranslationBase.of(context).notExamined, + // fontWeight: FontWeight.normal, + // fontFamily: 'Poppins', + // fontSize: + // SizeConfig.textMultiplier! * 1.6, + // ), + // ), + // ], + // ), + // )), + // ], + // ), + Container( + margin: EdgeInsets.only(top: 8), + child: AppTextFieldCustom( + hintText: TranslationBase.of(context).remarks, + controller: value.remarksController, + minLines: 2, + maxLines: 4, + inputType: TextInputType.multiline, + onChanged: (value) {}, + onClick: () {}, + onFieldSubmitted: () {}, + ), + ), + ], + ), + ) + : SizedBox.shrink(), + ], + ),)?.toList() ?? [] + // Expanded( + // child: ListView.builder( + // shrinkWrap: true, + // itemCount: examinations?.length ?? 0, + // itemBuilder: (context, index) => Column( + // children: [ + // ListTileTheme( + // horizontalTitleGap: 0, + // child: CheckboxListTile( + // activeColor: Color(0xFFD02127), + // checkColor: Colors.white, + // contentPadding: EdgeInsets.zero, + // side: MaterialStateBorderSide.resolveWith( + // (Set states) { + // if (states.contains(MaterialState.selected)) { + // return const BorderSide(color: Color(0xFFD02127)); + // } + // return const BorderSide(color: Color(0xFFE6E6E6)); + // }, + // ), + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(16)), + // value: examinations?[index].isSelected, + // controlAffinity: ListTileControlAffinity.leading, + // onChanged: (bool? value) { + // setState(() { + // examinations?[index].isSelected = value ?? false; + // }); + // }, + // title: AppText( + // examinations![index].name!, + // color: Color(0XFF575757), + // fontSize: 14, + // fontWeight: FontWeight.w400, + // ), + // ), + // ), + // (examinations?[index].isSelected == true) + // ? Container( + // padding: EdgeInsets.symmetric(horizontal: 12), + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Container( + // margin: EdgeInsets.only(bottom: 8), + // child: AppText( + // TranslationBase.of(context).condition, + // fontWeight: FontWeight.bold, + // fontFamily: 'Poppins', + // fontSize: SizeConfig.textMultiplier! * 1.6, + // ), + // ), + // SizedBox( + // width: MediaQuery.sizeOf(context).width, + // height: 24, + // child: ListView.builder( + // shrinkWrap: true, + // scrollDirection: Axis.horizontal, + // itemCount: examinations?[index] + // .conditionsList + // ?.length ?? + // 0, + // itemBuilder: (context, currentIndex) => InkWell( + // onTap: () { + // setState(() { + // examinations?[index] + // .selectedCondition = + // int.parse(examinations?[index] + // .conditionsList?[ + // currentIndex] + // .conditionName ?? + // "-1"); + // }); + // }, + // child: Row( + // children: [ + // Container( + // padding: EdgeInsets.all(2.0), + // margin: EdgeInsets.symmetric( + // horizontal: 6), + // width: 20, + // height: 20, + // decoration: BoxDecoration( + // color: Colors.white, + // shape: BoxShape.circle, + // border: Border.all( + // color: Colors.grey, width: 1), + // ), + // child: Container( + // decoration: BoxDecoration( + // color: examinations?[index] + // .selectedCondition == + // int.parse(examinations?[ + // index] + // .conditionsList?[ + // currentIndex] + // .conditionName ?? + // "-1") + // ? HexColor("#D02127") + // : Colors.white, + // shape: BoxShape.circle, + // ), + // ), + // ), + // AppText( + // examinations?[index] + // .conditionsList?[ + // currentIndex] + // .conditionCode ?? + // '', + // fontWeight: FontWeight.normal, + // fontFamily: 'Poppins', + // fontSize: + // SizeConfig.textMultiplier! * + // 1.6, + // ), + // ], + // ), + // )), + // ), + // // Row( + // // children: [ + // // if(examinations?[index] + // // .conditionsList?.length == 1) + // // Expanded( + // // child: InkWell( + // // onTap: () { + // // setState(() { + // // examinations?[index].selectedCondition = + // // int.parse(examinations?[index] + // // .conditionsList?[0] + // // .conditionName ?? + // // "-1"); + // // }); + // // }, + // // child: Row( + // // children: [ + // // Container( + // // padding: EdgeInsets.all(2.0), + // // margin: + // // EdgeInsets.symmetric(horizontal: 6), + // // width: 20, + // // height: 20, + // // decoration: BoxDecoration( + // // color: Colors.white, + // // shape: BoxShape.circle, + // // border: Border.all( + // // color: Colors.grey, width: 1), + // // ), + // // child: Container( + // // decoration: BoxDecoration( + // // color: examinations?[index].selectedCondition == + // // int.parse(examinations?[index] + // // .conditionsList?[0] + // // .conditionName ?? + // // "-1") + // // ? HexColor("#D02127") + // // : Colors.white, + // // shape: BoxShape.circle, + // // ), + // // ), + // // ), + // // AppText( + // // examinations?[index] + // // .conditionsList?[0] + // // .conditionCode ?? + // // TranslationBase.of(context).normal, + // // fontWeight: FontWeight.normal, + // // fontFamily: 'Poppins', + // // fontSize: + // // SizeConfig.textMultiplier! * 1.6, + // // ), + // // ], + // // ), + // // )), + // // Expanded( + // // child: InkWell( + // // onTap: () { + // // setState(() { + // // setState(() { + // // examinations?[index].selectedCondition = + // // int.parse(examinations?[index] + // // .conditionsList?[1] + // // .conditionName ?? + // // "-1"); + // // }); + // // }); + // // }, + // // child: Row( + // // children: [ + // // Container( + // // padding: EdgeInsets.all(2.0), + // // margin: + // // EdgeInsets.symmetric(horizontal: 6), + // // width: 20, + // // height: 20, + // // decoration: BoxDecoration( + // // color: Colors.white, + // // shape: BoxShape.circle, + // // border: Border.all( + // // color: Colors.grey, width: 1), + // // ), + // // child: Container( + // // decoration: BoxDecoration( + // // color: examinations?[index].selectedCondition == + // // int.parse(examinations?[index] + // // .conditionsList?[1] + // // .conditionName ?? + // // "-1") + // // ? HexColor("#D02127") + // // : Colors.white, + // // shape: BoxShape.circle, + // // ), + // // ), + // // ), + // // AppText( + // // examinations?[index] + // // .conditionsList?[1] + // // .conditionCode ?? + // // TranslationBase.of(context).abnormal, + // // fontWeight: FontWeight.normal, + // // fontFamily: 'Poppins', + // // fontSize: + // // SizeConfig.textMultiplier! * 1.6, + // // ), + // // ], + // // ), + // // )), + // // Expanded( + // // child: InkWell( + // // onTap: () { + // // setState(() { + // // setState(() { + // // examinations?[index].selectedCondition = + // // int.parse(examinations?[index] + // // .conditionsList?[2] + // // .conditionName ?? + // // "-1"); + // // }); + // // }); + // // + // // }, + // // child: Row( + // // children: [ + // // Container( + // // padding: EdgeInsets.all(2.0), + // // margin: + // // EdgeInsets.symmetric(horizontal: 6), + // // width: 20, + // // height: 20, + // // decoration: BoxDecoration( + // // color: Colors.white, + // // shape: BoxShape.circle, + // // border: Border.all( + // // color: Colors.grey, width: 1), + // // ), + // // child: Container( + // // decoration: BoxDecoration( + // // color: examinations?[index].selectedCondition == + // // int.parse(examinations?[index] + // // .conditionsList?[2] + // // .conditionName ?? + // // "-1") + // // ? HexColor("#D02127") + // // : Colors.white, + // // shape: BoxShape.circle, + // // ), + // // ), + // // ), + // // Expanded( + // // child: AppText( + // // examinations?[index] + // // .conditionsList?[2] + // // .conditionCode ?? + // // TranslationBase.of(context).notExamined, + // // fontWeight: FontWeight.normal, + // // fontFamily: 'Poppins', + // // fontSize: + // // SizeConfig.textMultiplier! * 1.6, + // // ), + // // ), + // // ], + // // ), + // // )), + // // ], + // // ), + // Container( + // margin: EdgeInsets.only(top: 8), + // child: AppTextFieldCustom( + // hintText: TranslationBase.of(context).remarks, + // controller: examinations?[index].remarksController, + // minLines: 2, + // maxLines: 4, + // inputType: TextInputType.multiline, + // onChanged: (value) {}, + // onClick: () {}, + // onFieldSubmitted: () {}, + // ), + // ), + // ], + // ), + // ) + // : SizedBox.shrink(), + // ], + // ), + // ), + // ), + // ], + ), ); } } diff --git a/lib/screens/patients/profile/soap_update_vida_plus/plan/update_plan_page_vida_plus.dart b/lib/screens/patients/profile/soap_update_vida_plus/plan/update_plan_page_vida_plus.dart index 98228a8c..b33caa3d 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/plan/update_plan_page_vida_plus.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/plan/update_plan_page_vida_plus.dart @@ -104,7 +104,7 @@ class _UpdatePlanPageVidaPlusState extends State widget.changeLoadingState(true); WidgetsBinding.instance.addPostFrameCallback((_) async { if (model.progressNote.isEmpty) { - await model.getProgressNote(widget.patientInfo); + model.getProgressNote(widget.patientInfo); } }); widget.changeLoadingState(false); diff --git a/lib/screens/patients/profile/soap_update_vida_plus/update_soap_index_vida_plus.dart b/lib/screens/patients/profile/soap_update_vida_plus/update_soap_index_vida_plus.dart index 50cf8db0..23283dd3 100644 --- a/lib/screens/patients/profile/soap_update_vida_plus/update_soap_index_vida_plus.dart +++ b/lib/screens/patients/profile/soap_update_vida_plus/update_soap_index_vida_plus.dart @@ -32,7 +32,7 @@ class UpdateSoapIndexVidaPlus extends StatefulWidget { class _UpdateSoapIndexVidaPlusState extends State with TickerProviderStateMixin { PageController? _controller; - int _currentIndex =2; + int _currentIndex =3; List myAllergiesList = []; List myHistoryList = []; @@ -97,32 +97,30 @@ class _UpdateSoapIndexVidaPlusState extends State }, scrollDirection: Axis.horizontal, children: [ - - UpdateAssessmentPage( + UpdatePlanPageVidaPlus( changePageViewIndex: changePageViewIndex, currentIndex: _currentIndex, patientInfo: patient, changeLoadingState: changeLoadingState, + sOAPViewModel: model, + changeStateFun: changeStateFun, ), - UpdateSubjectivePageVidaPlus( - changePageViewIndex: changePageViewIndex, - currentIndex: _currentIndex, - patientInfo: patient, - changeLoadingState: changeLoadingState), UpdateObjectivePageVidaPlus( changePageViewIndex: changePageViewIndex, currentIndex: _currentIndex, patientInfo: patient, changeLoadingState: changeLoadingState), - - UpdatePlanPageVidaPlus( + UpdateAssessmentPage( changePageViewIndex: changePageViewIndex, currentIndex: _currentIndex, patientInfo: patient, changeLoadingState: changeLoadingState, - sOAPViewModel: model, - changeStateFun: changeStateFun, ), + UpdateSubjectivePageVidaPlus( + changePageViewIndex: changePageViewIndex, + currentIndex: _currentIndex, + patientInfo: patient, + changeLoadingState: changeLoadingState), ], ), ) diff --git a/lib/utils/translations_delegate_base_utils.dart b/lib/utils/translations_delegate_base_utils.dart index 4d6a185d..4302f215 100644 --- a/lib/utils/translations_delegate_base_utils.dart +++ b/lib/utils/translations_delegate_base_utils.dart @@ -1943,6 +1943,9 @@ class TranslationBase { String get deletedRemarks => localizedValues['deletedRemarks']![locale.languageCode]!; String get noRemarks => localizedValues['noRemarks']![locale.languageCode]!; + String get kindlySelectCategory => localizedValues['kindlySelectCategory']![locale.languageCode]!; + String get remarksCanNotBeEmpty => localizedValues['remarksCanNotBeEmpty']![locale.languageCode]!; + } class TranslationBaseDelegate extends LocalizationsDelegate {