diff --git a/lib/config/config.dart b/lib/config/config.dart index e5716768..2815b5dc 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -207,7 +207,6 @@ const CREATE_PROGRESS_NOTE_FOR_INPATIENT = "Services/DoctorApplication.svc/REST/ const IS_PRINCIPAL_COVERED = "Services/DoctorApplication.svc/REST/IsPrincipalDiagnosisCovered"; const GET_ICD10DISEASE = "Services/DoctorApplication.svc/REST/GetICD10DiseaseForItemId"; - const GET_SICK_LEAVE_PATIENT = "Services/Patients.svc/REST/GetPatientSickLeave"; const GET_MY_OUT_PATIENT = "Services/DoctorApplication.svc/REST/GetMyOutPatient"; @@ -280,7 +279,6 @@ const GET_STP_MASTER_LIST = "Services/DoctorApplication.svc/REST/DoctorApp_GetST const DOCTOR_ER_SIGN_ASSESSMENT = "Services/DoctorApplication.svc/REST/DoctorApp_DoctorERSignAssessment"; - const DOCTOR_SCHEDULE = "api/ScheduledSchedule/GetallSchedulebyUser"; var selectedPatientType = 1; @@ -315,7 +313,7 @@ const TRANSACTION_NO = 0; const LANGUAGE_ID = 2; const STAMP = '2020-04-27T12:17:17.721Z'; const IP_ADDRESS = '9.9.9.9'; -const VERSION_ID = 8.7; +const VERSION_ID = 8.9; const CHANNEL = 9; const SESSION_ID = 'BlUSkYymTt'; const IS_LOGIN_FOR_DOCTOR_APP = true; diff --git a/lib/core/service/patient_medical_file/prescription/prescription_service.dart b/lib/core/service/patient_medical_file/prescription/prescription_service.dart index 2cf18c4d..dda12286 100644 --- a/lib/core/service/patient_medical_file/prescription/prescription_service.dart +++ b/lib/core/service/patient_medical_file/prescription/prescription_service.dart @@ -451,8 +451,8 @@ class PrescriptionService extends LookupService { await baseAppClient.post(IS_PRINCIPAL_COVERED, body:{ "PatientID":patient.patientId, - "EncounterNo":patient.appointmentNo, - "EncounterType":patient.appointmentTypeId, + "EncounterNo":patient.appointmentNo ?? 0, + "EncounterType":patient.appointmentTypeId ?? 0, "DoctorID":patient.doctorId, }, onSuccess: (dynamic response, int statusCode) { isDiagnosisCovered = response['IsDiagnosisCovered']; diff --git a/lib/core/viewModel/procedure_View_model.dart b/lib/core/viewModel/procedure_View_model.dart index 05903d45..e370ee03 100644 --- a/lib/core/viewModel/procedure_View_model.dart +++ b/lib/core/viewModel/procedure_View_model.dart @@ -37,6 +37,7 @@ class ProcedureViewModel extends BaseViewModel { bool hasError = false; ProcedureService _procedureService = locator(); PrescriptionService _prescriptionService = locator(); + List get procedureList => _procedureService.procedureList; List get valadteProcedureList => _procedureService.valadteProcedureList; @@ -65,6 +66,7 @@ class ProcedureViewModel extends BaseViewModel { bool _isRadiologyVIDAPlus = false; bool get isRadiologyVIDAPlus => _isRadiologyVIDAPlus; + bool get isPrincipalCovered_ => _prescriptionService.isDiagnosisCovered; Future getProcedure({int mrn, String patientType, int appointmentNo, bool isLocalBusy = false}) async { @@ -457,16 +459,15 @@ class ProcedureViewModel extends BaseViewModel { items.addAll(masterList); } } - Future isPrincipalCovered( - { - @required PatiantInformtion patient}) async { - setState(ViewState.Busy); + + Future isPrincipalCovered({@required PatiantInformtion patient}) async { + // setState(ViewState.Busy); await _prescriptionService.isPrincipalCovered(patient); if (_prescriptionService.hasError) { error = _prescriptionService.error; setState(ViewState.ErrorLocal); } else { - setState(ViewState.Idle); + // setState(ViewState.Idle); } } } diff --git a/lib/screens/patients/profile/lab_result/labs_home_page.dart b/lib/screens/patients/profile/lab_result/labs_home_page.dart index e6851456..f30d6baf 100644 --- a/lib/screens/patients/profile/lab_result/labs_home_page.dart +++ b/lib/screens/patients/profile/lab_result/labs_home_page.dart @@ -71,21 +71,24 @@ class _LabsHomePageState extends State { SizedBox( height: 12, ), - if ((model.patientLabOrdersList.isNotEmpty && - patient.patientStatusType != 43)|| (patient.patientStatusType != null && - patient.patientStatusType == 43)) + if ((model.patientLabOrdersList.isNotEmpty && patient.patientStatusType != 43) || (patient.patientStatusType != null && patient.patientStatusType == 43)) ServiceTitle( title: TranslationBase.of(context).lab, subTitle: TranslationBase.of(context).result, ), - if ((patient.patientStatusType != null && - patient.patientStatusType == 43) || - (isFromLiveCare && patient.appointmentNo != null)) - - SizedBox(height: 20,), - !model.isPrincipalCovered_ ? Center(child: AppText(TranslationBase.of(context).principalCoveredOrNot,color: Colors.red, textAlign: TextAlign.center, )) :SizedBox(), - - AddNewOrder( + SizedBox( + height: 20, + ), + !model.isPrincipalCovered_ + ? Center( + child: AppText( + TranslationBase.of(context).principalCoveredOrNot, + color: Colors.red, + textAlign: TextAlign.center, + )) + : SizedBox(), + if ((patient.patientStatusType != null && patient.patientStatusType == 43) || (isFromLiveCare && patient.appointmentNo != null)) + AddNewOrder( onTap: () { Navigator.push( context, @@ -123,44 +126,26 @@ class _LabsHomePageState extends State { child: Container( width: 20, decoration: BoxDecoration( - color: model.patientLabOrdersList[index] - .isLiveCareAppointment + color: model.patientLabOrdersList[index].isLiveCareAppointment ? Colors.red[900] - : !model.patientLabOrdersList[index] - .isInOutPatient + : !model.patientLabOrdersList[index].isInOutPatient ? Colors.black : Color(0xffa9a089), borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic - ? Radius.circular(0) - : Radius.circular(8), - bottomLeft: projectViewModel.isArabic - ? Radius.circular(0) - : Radius.circular(8), - topRight: projectViewModel.isArabic - ? Radius.circular(8) - : Radius.circular(0), - bottomRight: projectViewModel.isArabic - ? Radius.circular(8) - : Radius.circular(0)), + topLeft: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(8), + bottomLeft: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(8), + topRight: projectViewModel.isArabic ? Radius.circular(8) : Radius.circular(0), + bottomRight: projectViewModel.isArabic ? Radius.circular(8) : Radius.circular(0)), ), child: RotatedBox( quarterTurns: 3, child: Center( child: Text( - model.patientLabOrdersList[index] - .isLiveCareAppointment - ? TranslationBase.of(context) - .liveCare - .toUpperCase() - : !model.patientLabOrdersList[index] - .isInOutPatient - ? TranslationBase.of(context) - .inPatientLabel - .toUpperCase() - : TranslationBase.of(context) - .outpatient - .toUpperCase(), + model.patientLabOrdersList[index].isLiveCareAppointment + ? TranslationBase.of(context).liveCare.toUpperCase() + : !model.patientLabOrdersList[index].isInOutPatient + ? TranslationBase.of(context).inPatientLabel.toUpperCase() + : TranslationBase.of(context).outpatient.toUpperCase(), style: TextStyle(color: Colors.white), ), )), @@ -176,8 +161,7 @@ class _LabsHomePageState extends State { context, FadePage( page: LaboratoryResultPage( - patientLabOrders: - model.patientLabOrdersList[index], + patientLabOrders: model.patientLabOrdersList[index], patient: patient, isInpatient: isInpatient, arrivalType: arrivalType, @@ -185,18 +169,12 @@ class _LabsHomePageState extends State { ), ), ), - doctorName: - Utils.convertToTitleCase(model.patientLabOrdersList[index].doctorName), - invoiceNO: - ' ${model.patientLabOrdersList[index].invoiceNo}', - profileUrl: model - .patientLabOrdersList[index].doctorImageURL, - branch: - model.patientLabOrdersList[index].projectName, - clinic: - Utils.convertToTitleCase(model.patientLabOrdersList[index].clinicDescription), - appointmentDate: - model.patientLabOrdersList[index].createdOn, + doctorName: Utils.convertToTitleCase(model.patientLabOrdersList[index].doctorName), + invoiceNO: ' ${model.patientLabOrdersList[index].invoiceNo}', + profileUrl: model.patientLabOrdersList[index].doctorImageURL, + branch: model.patientLabOrdersList[index].projectName, + clinic: Utils.convertToTitleCase(model.patientLabOrdersList[index].clinicDescription), + appointmentDate: model.patientLabOrdersList[index].createdOn, orderNo: model.patientLabOrdersList[index].orderNo, isShowTime: false, ), @@ -205,8 +183,7 @@ class _LabsHomePageState extends State { ), ), ), - if (model.patientLabOrdersList.isEmpty && - patient.patientStatusType != 43) + if (model.patientLabOrdersList.isEmpty && patient.patientStatusType != 43) Center( child: ErrorMessage( error: TranslationBase.of(context).noDataAvailable, diff --git a/lib/widgets/shared/speech-text-popup.dart b/lib/widgets/shared/speech-text-popup.dart index d911b86c..3d9c2fce 100644 --- a/lib/widgets/shared/speech-text-popup.dart +++ b/lib/widgets/shared/speech-text-popup.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/provider/robot_provider.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; +import 'package:doctor_app_flutter/utils/extenstions_utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -62,21 +63,7 @@ class _MyStatefulBuilderState extends State { @override void initState() { - streamSubscription = event.controller.stream.listen((p) { - if ((p['searchText'] != 'null' && - p['searchText'] != null && - p['searchText'] != "" && - isClosed == false)) { - setState(() { - searchText = p['searchText']; - SpeechToText.closeAlertDialog(context); - }); - } else if (p['searchText'] == 'null') { - setState(() { - searchText = p['searchText']; - }); - } - }); + startStreamListener(); super.initState(); } @@ -104,9 +91,7 @@ class _MyStatefulBuilderState extends State { child: Container( margin: EdgeInsets.all(20), padding: EdgeInsets.all(10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(100), - border: Border.all(width: 2, color: Colors.red)), + decoration: BoxDecoration(borderRadius: BorderRadius.circular(100), border: Border.all(width: 2, color: Colors.red)), child: Icon( Icons.mic, color: Colors.blue, @@ -135,8 +120,7 @@ class _MyStatefulBuilderState extends State { ? Center( child: InkWell( child: Container( - decoration: BoxDecoration( - border: Border.all(color: Colors.grey[300])), + decoration: BoxDecoration(border: Border.all(color: Colors.grey[300])), padding: EdgeInsets.all(5), child: AppText( 'Try Again', @@ -160,7 +144,23 @@ class _MyStatefulBuilderState extends State { @override void dispose() { - super.dispose(); widget.dispose(); + streamSubscription.cancel(); + super.dispose(); + } + + void startStreamListener() { + streamSubscription = event.controller.stream.listen((p) { + if ((p['searchText'] != 'null' && p['searchText'] != null && p['searchText'] != "" && isClosed == false && mounted)) { + setState(() { + searchText = p['searchText']; + // SpeechToText.closeAlertDialog(context); + }); + } else if (p['searchText'] == 'null' && mounted) { + setState(() { + searchText = p['searchText']; + }); + } + }); } } diff --git a/pubspec.yaml b/pubspec.yaml index 40067c1a..897003bc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: A new Flutter project. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.4.1+21 +version: 1.4.12+1 environment: