diff --git a/lib/core/model/admissionRequest/admission-request.dart b/lib/core/model/admissionRequest/admission-request.dart index 2844e0cb..1d4a95ef 100644 --- a/lib/core/model/admissionRequest/admission-request.dart +++ b/lib/core/model/admissionRequest/admission-request.dart @@ -42,7 +42,7 @@ class AdmissionRequest { int? episodeID; int? admissionRequestNo; dynamic? intendedLengthOfStayId; - + String? expectedAdmissionDate; AdmissionRequest( {this.patientMRN, this.admitToClinic, @@ -86,7 +86,9 @@ class AdmissionRequest { this.appointmentNo, this.episodeID, this.admissionRequestNo, - this.intendedLengthOfStayId}); + this.intendedLengthOfStayId, + this.expectedAdmissionDate + }); AdmissionRequest.fromJson(Map json) { patientMRN = json['patientMRN']; diff --git a/lib/core/service/base/lookup-service.dart b/lib/core/service/base/lookup-service.dart index 969ab0b5..1f1f22f2 100644 --- a/lib/core/service/base/lookup-service.dart +++ b/lib/core/service/base/lookup-service.dart @@ -55,7 +55,7 @@ class LookupService extends BaseService { List listOfAdmissionType = []; List listOfDiagnosisSelectionTypes = []; List morphologyList = []; - List intendedLengthOfStay = []; + List intendedLengthOfStay = []; Future getMasterLookup(MasterKeysService masterKeys, {String searchKey = ""}) async { @@ -225,7 +225,7 @@ class LookupService extends BaseService { case MasterKeysService.IntendedLengthOfStay: intendedLengthOfStay.clear(); entryList.forEach((v) { - intendedLengthOfStay.add(MasterKeyModel.fromJson(v)); + intendedLengthOfStay.add(v); }); break; } diff --git a/lib/core/service/patient_medical_file/admission_request/patient-admission-request-service.dart b/lib/core/service/patient_medical_file/admission_request/patient-admission-request-service.dart index 93cd6ff0..d1988049 100644 --- a/lib/core/service/patient_medical_file/admission_request/patient-admission-request-service.dart +++ b/lib/core/service/patient_medical_file/admission_request/patient-admission-request-service.dart @@ -232,7 +232,7 @@ class AdmissionRequestService extends LookupService { ); } - Future getKSAProjectValue() async { + getKSAProjectValue() async { hasError = false; Map body = Map(); @@ -240,7 +240,7 @@ class AdmissionRequestService extends LookupService { await baseAppClient.post( IS_KSA_PROJECT, onSuccess: (dynamic response, int statusCode) { - isKSAProject = response['isKSAProject'] ?? false; + isKSAProject = response['IsKsaProject']; }, onFailure: (String error, int statusCode) { hasError = true; @@ -248,7 +248,6 @@ class AdmissionRequestService extends LookupService { }, body: body, ); - return isKSAProject; } Future getMasterKeyItems() async { 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 79f9b506..9756ad23 100644 --- a/lib/core/service/patient_medical_file/soap/SOAP_service.dart +++ b/lib/core/service/patient_medical_file/soap/SOAP_service.dart @@ -1561,7 +1561,7 @@ class SOAPService extends LookupService { }, body: finalRequest); } - Future isMorphology(String icd10Code) async { + Future isMorphology(String icd10Code) async { hasError = false; await baseAppClient.post(IS_MORPHOLOGY, @@ -1569,13 +1569,11 @@ class SOAPService extends LookupService { print("Success"); isMorphology_ = response['Ismorphology']; - return isMorphology_; }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; return false; - }, body: {"selectedIcdCode": icd10Code}); - return false; + }, body: {"selectedIcdCode": "C00.0"}); //icd10Code commented for testing } Future getMorphologyDiagnosis() async { diff --git a/lib/core/viewModel/SOAP_view_model.dart b/lib/core/viewModel/SOAP_view_model.dart index 3257adb8..c013da19 100644 --- a/lib/core/viewModel/SOAP_view_model.dart +++ b/lib/core/viewModel/SOAP_view_model.dart @@ -1507,8 +1507,8 @@ class SOAPViewModel extends BaseViewModel { Future getMorphologyDiagnosis(String icdCode10) async { setState(ViewState.BusyLocal); - bool isMorphologyRequired = await _SOAPService.isMorphology(icdCode10); - if (isMorphologyRequired) { + await _SOAPService.isMorphology(icdCode10); + if (_SOAPService.isMorphology_) { await _SOAPService.getMorphologyDiagnosis(); } if (_SOAPService.hasError) { diff --git a/lib/core/viewModel/patient-admission-request-viewmodel.dart b/lib/core/viewModel/patient-admission-request-viewmodel.dart index 8be097e2..4bc77801 100644 --- a/lib/core/viewModel/patient-admission-request-viewmodel.dart +++ b/lib/core/viewModel/patient-admission-request-viewmodel.dart @@ -1,5 +1,6 @@ import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart'; +import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/core/model/admissionRequest/admission-request.dart'; import 'package:doctor_app_flutter/core/service/patient_medical_file/admission_request/patient-admission-request-service.dart'; import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; @@ -37,6 +38,8 @@ class AdmissionRequestViewModel extends BaseViewModel { AdmissionRequest admissionRequestData = AdmissionRequest(); + + Future getSpecialityList() async { await getMasterLookup(MasterKeysService.Speciality); if (!_admissionRequestService.hasError) { @@ -155,8 +158,8 @@ class AdmissionRequestViewModel extends BaseViewModel { Future getIsKSAProject() async { setState(ViewState.BusyLocal); - bool result = await _admissionRequestService.getKSAProjectValue(); - if(result){ + await _admissionRequestService.getKSAProjectValue(); + if(_admissionRequestService.isKSAProject){ await _admissionRequestService.getMasterKeyItems(); } if (_admissionRequestService.hasError) { diff --git a/lib/core/viewModel/project_view_model.dart b/lib/core/viewModel/project_view_model.dart index 123482d7..aa25e420 100644 --- a/lib/core/viewModel/project_view_model.dart +++ b/lib/core/viewModel/project_view_model.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:connectivity/connectivity.dart'; +// import 'package:connectivity/connectivity.dart'; import 'package:doctor_app_flutter/client/base_app_client.dart'; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; @@ -42,20 +42,20 @@ class ProjectViewModel with ChangeNotifier { ProjectViewModel() { loadSharedPrefLanguage(); - subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { - switch (result) { - case ConnectivityResult.wifi: - isInternetConnection = true; - break; - case ConnectivityResult.mobile: - isInternetConnection = true; - break; - case ConnectivityResult.none: - isInternetConnection = false; - break; - } - notifyListeners(); - }); + // subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { + // switch (result) { + // case ConnectivityResult.wifi: + // isInternetConnection = true; + // break; + // case ConnectivityResult.mobile: + // isInternetConnection = true; + // break; + // case ConnectivityResult.none: + // isInternetConnection = false; + // break; + // } + // notifyListeners(); + // }); } setVidaPlusProjectList(List vidaPlusProjectListModelInput) { diff --git a/lib/screens/patients/profile/admission_request/admission_request_first_screen.dart b/lib/screens/patients/profile/admission_request/admission_request_first_screen.dart index 9efe8e75..9748b684 100644 --- a/lib/screens/patients/profile/admission_request/admission_request_first_screen.dart +++ b/lib/screens/patients/profile/admission_request/admission_request_first_screen.dart @@ -286,6 +286,7 @@ class _AdmissionRequestThirdScreenState extends State( onModelReady: (model){ WidgetsBinding.instance.addPostFrameCallback((_) async { - await model.getIsKSAProject(); + model.getIsKSAProject(); //todo handle get diagnosis list }); }, @@ -241,8 +241,7 @@ class _AdmissionRequestSecondScreenState onChanged: (value) {}, onFieldSubmitted: () {}, ), - if (model.intendedStayLength != null && - model.intendedStayLength.isNotEmpty) ...{ + if (model.intendedStayLength.isNotEmpty) ...{ SizedBox( height: 10, ), @@ -253,17 +252,16 @@ class _AdmissionRequestSecondScreenState dropDownText: _selectedIntendedStayLength != null ? _selectedIntendedStayLength['nameEn'] - : null, + : model.intendedStayLength.first['nameEn'], enabled: false, isTextFieldHasSuffix: true, validationError: stayLengthError, - onClick: model.intendedStayLength != null && - model.intendedStayLength.length > 0 + onClick: model.intendedStayLength.length > 0 ? () { var attributeName = projectViewModel.isArabic - ? 'nameEn' - : 'nameAr'; + ? 'nameAr': + 'nameEn'; openListDialogField(attributeName, 'id', model.intendedStayLength, (selectedValue) { @@ -283,9 +281,9 @@ class _AdmissionRequestSecondScreenState model.intendedStayLength .isNotEmpty) { var attributeName = - projectViewModel.isArabic - ? 'nameEn' - : 'nameAr'; + projectViewModel.isArabic + ? 'nameAr': + 'nameEn'; openListDialogField(attributeName, 'id', model.intendedStayLength, (selectedValue) { @@ -634,6 +632,8 @@ class _AdmissionRequestSecondScreenState int.parse(_expectedDaysController.text); model.admissionRequestData!.admissionDate = _expectedAdmissionDate!.toIso8601String(); + model.admissionRequestData!.expectedAdmissionDate = + _expectedAdmissionDate!.toIso8601String(); model.admissionRequestData.otherDepartmentinterventions = _otherDepartmentsInterventionsController.text; model.admissionRequestData!.admissionLocationID = @@ -654,7 +654,7 @@ class _AdmissionRequestSecondScreenState _otherProceduresController.text; model.admissionRequestData!.admissionType = _selectedAdmissionType['id']; - model.admissionRequestData.intendedLengthOfStayId = (_selectedIntendedStayLength as MasterKeyModel).id; + model.admissionRequestData.intendedLengthOfStayId = _selectedIntendedStayLength['id']; Navigator.of(context) .pushNamed(PATIENT_ADMISSION_REQUEST_3, arguments: { diff --git a/lib/screens/patients/profile/admission_request/admission_request_third_screen.dart b/lib/screens/patients/profile/admission_request/admission_request_third_screen.dart index d08c34be..d6ae0393 100644 --- a/lib/screens/patients/profile/admission_request/admission_request_third_screen.dart +++ b/lib/screens/patients/profile/admission_request/admission_request_third_screen.dart @@ -1,15 +1,18 @@ import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart'; import 'package:doctor_app_flutter/core/enum/view_state.dart'; +import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/core/model/admissionRequest/admission-request.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/service/AnalyticsService.dart'; +import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/patient-admission-request-viewmodel.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/locator.dart'; import 'package:doctor_app_flutter/screens/base/base_view.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/utils/utils.dart'; import 'package:doctor_app_flutter/widgets/bottom_sheet/bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/patients/patient_service_title.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-app-bar.dart'; @@ -17,6 +20,7 @@ import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart'; +import 'package:doctor_app_flutter/widgets/shared/dialogs/master_key_dailog.dart'; import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart'; import 'package:flutter/material.dart'; @@ -34,7 +38,7 @@ class _AdmissionRequestThirdScreenState extends State( builder: (_, model, w) => AppScaffold( @@ -132,7 +135,10 @@ class _AdmissionRequestThirdScreenState extends State( + builder: (_, soapModel, w) => Column(children: [ + + AppTextFieldCustom( height: screenSize.height * 0.075, hintText: TranslationBase.of(context).icd, dropDownText: _selectedIcd != null ? _selectedIcd['description'] : null, @@ -142,6 +148,9 @@ class _AdmissionRequestThirdScreenState extends State 0 ? () { openListDialogField('description', 'code', model.icdCodes, (selectedValue) { + soapModel.getMorphologyDiagnosis(selectedValue['code'] + .toString() + .trim()); setState(() { _selectedIcd = selectedValue; }); @@ -152,6 +161,9 @@ class _AdmissionRequestThirdScreenState extends State GifLoaderDialogUtils.hideDialog(context)); if (model.state == ViewState.Idle && model.icdCodes.length > 0) { openListDialogField('description', 'code', model.icdCodes, (selectedValue) { + soapModel.getMorphologyDiagnosis(selectedValue['code'] + .toString() + .trim()); setState(() { _selectedIcd = selectedValue; }); @@ -165,6 +177,51 @@ class _AdmissionRequestThirdScreenState extends State { onClick: model.morphologyList != null ? () { MasterKeyDailog dialog = MasterKeyDailog( - list: model.listOfDiagnosisCondition!, + list: model.morphologyList!, okText: TranslationBase.of(context).ok, selectedStringValue: widget .mySelectedAssessment diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 148474f0..e4203371 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -1,4 +1,4 @@ -import 'package:connectivity/connectivity.dart'; +// import 'package:connectivity/connectivity.dart'; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/core/model/doctor/list_doctor_working_hours_table_model.dart'; import 'package:doctor_app_flutter/core/model/hospitals/get_hospitals_response_model.dart'; @@ -141,12 +141,12 @@ class Utils { } static Future checkConnection() async { - ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity()); - if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)) { + // ConnectivityResult connectivityResult = await (Connectivity().checkConnectivity()); + // if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)) { return true; - } else { - return false; - } + // } else { + // return false; + // } } static List getWorkingHours(String workingHours) { diff --git a/lib/widgets/shared/dialogs/dailog-list-select.dart b/lib/widgets/shared/dialogs/dailog-list-select.dart index a89d5f6a..5132d1be 100644 --- a/lib/widgets/shared/dialogs/dailog-list-select.dart +++ b/lib/widgets/shared/dialogs/dailog-list-select.dart @@ -92,7 +92,7 @@ class _ListSelectDialogState extends State { child: Column( children: [ ...items - .map((item) => RadioListTile( + .map((dynamic item) => RadioListTile( title: Text("${Utils.convertToTitleCase(item[widget.attributeName].toString())}"), groupValue: Utils.convertToTitleCase(widget.selectedValue[widget.attributeValueId].toString()), value: item[widget.attributeValueId].toString(),