From 936ae7b13167058f3071ae7e0b4bb5bdc6c8ddae Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 6 Aug 2025 10:36:16 +0300 Subject: [PATCH 1/2] updates & fixes for Huawei --- agconnect-services.json | 74 +++++++++++++++++++ android/app/build.gradle | 7 +- android/build.gradle | 12 +++ android/settings.gradle | 24 ++++-- lib/pages/livecare/incoming_call.dart | 5 +- .../login/user-login-agreement-page.dart | 2 +- lib/uitl/CalendarUtils.dart | 18 ++--- lib/widgets/in_app_browser/InAppBrowser.dart | 4 +- pubspec.yaml | 49 +++++++----- 9 files changed, 152 insertions(+), 43 deletions(-) create mode 100644 agconnect-services.json diff --git a/agconnect-services.json b/agconnect-services.json new file mode 100644 index 00000000..91aad2c7 --- /dev/null +++ b/agconnect-services.json @@ -0,0 +1,74 @@ +{ + "agcgw":{ + "backurl":"connect-drcn.hispace.hicloud.com", + "url":"connect-drcn.dbankcloud.cn", + "websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com", + "websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn" + }, + "agcgw_all":{ + "CN":"connect-drcn.dbankcloud.cn", + "CN_back":"connect-drcn.hispace.hicloud.com", + "DE":"connect-dre.dbankcloud.cn", + "DE_back":"connect-dre.hispace.hicloud.com", + "RU":"connect-drru.dbankcloud.cn", + "RU_back":"connect-drru.hispace.hicloud.com", + "SG":"connect-dra.dbankcloud.cn", + "SG_back":"connect-dra.hispace.hicloud.com" + }, + "client":{ + "cp_id":"2640966000002322881", + "product_id":"736430079244816567", + "client_id":"563735388191982656", + "client_secret":"650C7C799812AFFD53A10C7756CF05FB9F215A7E49032ABA8EBF3E14B77535CF", + "project_id":"736430079244816567", + "app_id":"102857389", + "api_key":"CgB6e3x9DJzMgRCmnT6dyUEkp6UsIfddb6l3w0ZEXzeiRMHEFi3400Z5fJ5qaHneU0OrAI/JRpk+DMGVs3QpUxlI", + "package_name":"com.ejada.hmg" + }, + "oauth_client":{ + "client_id":"102857389", + "client_type":1 + }, + "app_info":{ + "app_id":"102857389", + "package_name":"com.ejada.hmg" + }, + "service":{ + "analytics":{ + "collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn", + "collector_url_ru":"datacollector-drru.dt.hicloud.com,datacollector-drru.dt.dbankcloud.cn", + "collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn", + "collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn", + "collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn", + "resource_id":"p1", + "channel_id":"" + }, + "search":{ + "url":"https://search-drcn.cloud.huawei.com" + }, + "cloudstorage":{ + "storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn" + }, + "ml":{ + "mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn" + } + }, + "region":"CN", + "configuration_version":"3.0", + "appInfos":[ + { + "package_name":"com.ejada.hmg", + "client":{ + "app_id":"102857389" + }, + "app_info":{ + "package_name":"com.ejada.hmg", + "app_id":"102857389" + }, + "oauth_client":{ + "client_type":1, + "client_id":"102857389" + } + } + ] +} diff --git a/android/app/build.gradle b/android/app/build.gradle index 607bb1b4..fb83079a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -4,7 +4,7 @@ plugins { id "com.google.gms.google-services" id "dev.flutter.flutter-gradle-plugin" id "com.google.firebase.crashlytics" - + id "com.huawei.agconnect" } @@ -18,12 +18,15 @@ if (keystorePropertiesFile.exists()) { android { namespace 'com.ejada.hmg' compileSdk 36 + ndkVersion '28.2.13676358' defaultConfig { applicationId "com.ejada.hmg" // minSdk 24 minSdkVersion 26 - targetSdk = flutter.targetSdkVersion + targetSdkVersion 35 + compileSdkVersion 35 +// targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName multiDexEnabled true diff --git a/android/build.gradle b/android/build.gradle index ba03ecf0..a255ad0a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,3 +1,15 @@ +buildscript { + repositories { + mavenCentral() + google() + maven { url "https://developer.huawei.com/repo/" } + } + dependencies { + classpath 'com.android.tools.build:gradle:8.1.0' + classpath 'com.huawei.agconnect:agcp:1.9.1.304' + } +} + allprojects { repositories { google() diff --git a/android/settings.gradle b/android/settings.gradle index 9bfc6a53..d1f38508 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -123,13 +123,13 @@ pluginManagement { includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") // Get vital-sign-engine path - def vitalSignEngine = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def vitalSignEnginePath = properties.getProperty("vital.sign.engine.path") - assert vitalSignEnginePath != null, "vital.sign.engine.path not set in local.properties" - return vitalSignEnginePath - }() +// def vitalSignEngine = { +// def properties = new Properties() +// file("local.properties").withInputStream { properties.load(it) } +// def vitalSignEnginePath = properties.getProperty("vital.sign.engine.path") +// assert vitalSignEnginePath != null, "vital.sign.engine.path not set in local.properties" +// return vitalSignEnginePath +// }() @@ -138,9 +138,18 @@ pluginManagement { repositories { google() mavenCentral() + maven { url 'https://developer.huawei.com/repo/' } gradlePluginPortal() } + resolutionStrategy { + eachPlugin { + if (requested.id.id == "com.huawei.agconnect") { + useModule("com.huawei.agconnect:agcp:1.9.1.304") + } + } + } + dependencyResolutionManagement { repositories { google() @@ -180,6 +189,7 @@ plugins { id("com.google.gms.google-services") version "4.4.3" apply false id("com.google.firebase.crashlytics") version "3.0.4" apply false id('org.gradle.toolchains.foojay-resolver-convention') version '0.9.0' apply false + id "com.huawei.agconnect" version "1.9.1.304" apply false } diff --git a/lib/pages/livecare/incoming_call.dart b/lib/pages/livecare/incoming_call.dart index 2c0a1ef7..7e705780 100644 --- a/lib/pages/livecare/incoming_call.dart +++ b/lib/pages/livecare/incoming_call.dart @@ -1,6 +1,6 @@ import 'dart:ui'; -import 'package:camera/camera.dart'; +// import 'package:camera/camera.dart'; import 'package:hmg_patient_app/models/LiveCare/IncomingCallData.dart'; import 'package:hmg_patient_app/pages/conference/widgets/platform_exception_alert_dialog.dart'; import 'package:hmg_patient_app/pages/conference/zoom/call_screen.dart'; @@ -31,7 +31,7 @@ class _IncomingCallState extends State with SingleTickerProviderSt bool openCallInWeb = true; final player = AudioPlayer(); - late CameraController _controller; + // late CameraController _controller; late Future _initializeControllerFuture; bool isCameraReady = false; @@ -224,6 +224,7 @@ class _IncomingCallState extends State with SingleTickerProviderSt context, "zoom_call_page", arguments: CallArguments(widget.incomingCallData!.sessionId!, "123", "Patient", "40", "0", false, int.parse(widget.incomingCallData!.appointmentNo!)), + // arguments: CallArguments("SmallDailyStandup9875", "123", "Patient", "40", "0", false, int.parse(widget.incomingCallData!.appointmentNo!)), ); } else { // OpenTok Call Page diff --git a/lib/pages/login/user-login-agreement-page.dart b/lib/pages/login/user-login-agreement-page.dart index 7c8bc6a4..35331569 100644 --- a/lib/pages/login/user-login-agreement-page.dart +++ b/lib/pages/login/user-login-agreement-page.dart @@ -44,7 +44,7 @@ class _UserLoginAgreementPageState extends State { final authService = AuthProvider(); late final WebViewController _controller; - bool isPageLoaded = false; + bool isPageLoaded = true; bool isTermsAndConditionsPage = true; bool acceptTerms = false; diff --git a/lib/uitl/CalendarUtils.dart b/lib/uitl/CalendarUtils.dart index f7fdda41..c54b5443 100644 --- a/lib/uitl/CalendarUtils.dart +++ b/lib/uitl/CalendarUtils.dart @@ -77,9 +77,10 @@ class CalendarUtils { scheduleDateTime!.forEach((element) { RecurrenceRule recurrenceRule = RecurrenceRule( - RecurrenceFrequency.Daily, - daysOfWeek: daysOfWeek, - endDate: element, + // RecurrenceFrequency.Daily, + // daysOfWeek: daysOfWeek, + // endDate: element, + until: element, frequency: Frequency.daily, ); //added byAamir Tz Time Event event = Event(writableCalendars!.id, @@ -98,9 +99,10 @@ class CalendarUtils { Future createOrUpdateEvent({required String title, required String description, DateTime? scheduleDateTime, String? eventId}) async { RecurrenceRule recurrenceRule = RecurrenceRule( - RecurrenceFrequency.Daily, + // RecurrenceFrequency.Daily, // daysOfWeek: daysOfWeek, - endDate: scheduleDateTime, + // endDate: scheduleDateTime, + until: scheduleDateTime, frequency: Frequency.daily, ); Location _currentLocation; @@ -126,7 +128,7 @@ class CalendarUtils { ios.CalendarEvent iosCalEvent = ios.CalendarEvent(eventId: eventId, startDate: scheduleDateTimeUTZ, endDate: scheduleDateTimeUTZ.add(Duration(minutes: 30)), title: title, description: description, isAllDay: false); - if(Platform.isAndroid) { + if (Platform.isAndroid) { Result result = await deviceCalendarPlugin.hasPermissions(); print(result); await deviceCalendarPlugin.createOrUpdateEvent(event).catchError((e) { @@ -143,10 +145,6 @@ class CalendarUtils { print("whenComplete Calender ID iOS " + eventId!); }); } - - - - } deleteEvent(Calendar _calendar, Event _event) async { diff --git a/lib/widgets/in_app_browser/InAppBrowser.dart b/lib/widgets/in_app_browser/InAppBrowser.dart index e4697472..c2afb8d2 100644 --- a/lib/widgets/in_app_browser/InAppBrowser.dart +++ b/lib/widgets/in_app_browser/InAppBrowser.dart @@ -38,9 +38,9 @@ class MyInAppBrowser extends InAppBrowser { static String APPLE_PAY_PAYFORT_URL = 'https://hmgwebservices.com/PayFortWebLive/PayFortApi/MakeApplePayRequest'; // Payfort Payment Gateway URL LIVE // static String APPLE_PAY_PAYFORT_URL = 'https://hmgwebservices.com/PayFortWebLive/PayFortApi/MakeApplePayRequest'; // Payfort Payment Gateway URL UAT - // static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT + static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWeb/pages/SendPayFortRequest.aspx'; // Payfort Payment Gateway URL UAT - static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE + // static String SERVICE_URL = 'https://hmgwebservices.com/PayFortWebLive/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL LIVE // static String SERVICE_URL = 'https://uat.hmgwebservices.com/payfortforvidaplus/pages/SendPayFortRequest.aspx'; //Payfort Payment Gateway URL UAT VIDA PLUS diff --git a/pubspec.yaml b/pubspec.yaml index 41e0d4cc..71e52673 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,7 +4,8 @@ description: A new Flutter application. version: 4.6.009+1 environment: - sdk: ">=3.0.0 <3.13.0" + # sdk: ">=3.0.0 <3.13.0" + sdk: ">=3.6.0 <4.0.0" dependencies: flutter: @@ -18,7 +19,7 @@ dependencies: webview_flutter: ^4.8.0 app_links: ^6.4.0 http: ^1.4.0 - connectivity_plus: ^6.1.4 + connectivity_plus: 6.1.0 async: ^2.8.1 audio_wave: ^0.1.4 provider: ^6.0.5 @@ -27,10 +28,10 @@ dependencies: get_it: ^8.0.3 health: ^13.1.1 fl_chart: ^1.0.0 - camera: ^0.11.1 + # camera: ^0.11.2 permission_handler: ^12.0.0+1 flutter_html: ^3.0.0-beta.2 - flutter_widget_from_html: ^0.16.0 + flutter_widget_from_html: ^0.17.0 # Pagnation pull_to_refresh: ^2.0.0 local_auth: ^2.1.7 @@ -38,8 +39,9 @@ dependencies: maps_launcher: ^3.0.0+1 url_launcher: ^6.3.1 url_launcher_ios: ^6.3.2 - shared_preferences: ^2.0.0 - fluttertoast: ^8.0.8 + shared_preferences: ^2.5.3 +# fluttertoast: ^8.0.8 + fluttertoast: ^8.2.12 flutter_progress_hud: ^2.0.2 percent_indicator: ^4.2.3 @@ -47,13 +49,13 @@ dependencies: # Icons font_awesome_flutter: any cupertino_icons: ^1.0.0 - image_picker: ^1.0.4 + image_picker: ^1.1.2 photo_view: any gif_view: ^1.0.3 expandable: ^5.0.1 flutter_charts: ^0.5.2 google_maps_flutter: ^2.12.3 -# huawei_map: ^6.11.2+304 + # huawei_map: ^6.11.2+304 huawei_map: git: url: https://github.com/fleoparra/hms-flutter-plugin.git @@ -62,27 +64,32 @@ dependencies: git: url: https://github.com/crasowas/hms-flutter-plugin.git path: flutter-hms-push -# huawei_push: ^6.12.0+303 + # huawei_push: ^6.12.0+303 + # hijri_gregorian_calendar: + # path: /Users/aamir/StudioProjects/hijri_gregorian_calendar + hijri_gregorian_calendar: ^0.0.3 # Qr code Scanner location: ^8.0.1 barcode_scan2: ^4.5.1 flutter_rating_bar: ^4.0.1 - syncfusion_flutter_calendar: ^28.1.37 + syncfusion_flutter_calendar: ^29.2.11+1 # SVG Images flutter_svg: ^2.0.8 manage_calendar_events: 2.0.3 -# icalendar_plus: ^0.0.6 + # icalendar_plus: ^0.0.6 flutter_inappwebview: ^6.1.5 circular_countdown_timer: ^0.2.0 - just_audio: ^0.9.30 + just_audio: ^0.10.4 hijri: ^3.0.0 flutter_datetime_picker_plus: ^2.1.0 carousel_pro_nullsafety: ^2.0.0 flutter_local_notifications: any - device_calendar: ^4.3.3 + device_calendar: + git: https://github.com/bardram/device_calendar geolocator: ^14.0.2 + geolocator_android: ^5.0.2 geocoding: ^4.0.0 jiffy: ^6.2.1 @@ -94,14 +101,14 @@ dependencies: #Dependencies for video call implementation native_device_orientation: ^2.0.3 # wakelock: ^0.6.2 - wakelock_plus: ^1.1.4 + wakelock_plus: ^1.3.2 after_layout: ^1.1.0 - cached_network_image: ^3.3.0 + cached_network_image: ^3.4.1 flutter_tts: ^4.2.3 flutter_nfc_kit: ^3.6.0 #geofencing: any - speech_to_text: ^7.1.0 + speech_to_text: ^7.2.0 in_app_update: ^4.2.2 in_app_review: ^2.0.10 badges: ^3.1.2 @@ -114,9 +121,9 @@ dependencies: auto_size_text: ^3.0.0 equatable: ^2.0.3 wave: ^0.2.0 - sms_otp_auto_verify: ^2.1.0 + sms_otp_auto_verify: ^2.2.0 google_api_availability: ^5.0.1 - open_filex: ^4.3.2 + open_filex: ^4.7.0 path_provider: ^2.0.8 amazon_payfort: ^1.1.4 logger: ^2.0.2+1 @@ -130,6 +137,8 @@ dependencies: firebase_analytics: ^11.5.1 cloudflare_turnstile: ^3.2.0 device_info_plus: ^11.5.0 + lottie: ^3.3.1 + google_fonts: ^6.2.1 google_maps_place_picker_mb_v2: ^1.0.1 # vital_sign_camera: @@ -137,7 +146,9 @@ dependencies: dependency_overrides: intl: ^0.20.2 - + flutter_plugin_android_lifecycle: 2.0.27 + image_picker_android: 0.8.12+22 + video_player_android: 2.8.10 dev_dependencies: flutter_test: From 18b56d6496994d3d83e06e7f8dd87bde285e0f16 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 6 Aug 2025 12:39:05 +0300 Subject: [PATCH 2/2] updates & fixes --- android/app/build.gradle | 3 +++ android/build.gradle | 13 +++++++++++++ android/settings.gradle | 5 ----- lib/core/model/radiology/final_radiology.dart | 5 ++++- lib/core/service/medical/medical_service.dart | 4 ++-- lib/core/service/medical/radiology_service.dart | 3 ++- .../viewModels/medical/radiology_view_model.dart | 4 ++-- lib/pages/login/confirm-login.dart | 2 +- .../medical/radiology/radiology_details_page.dart | 3 ++- 9 files changed, 29 insertions(+), 13 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index fb83079a..19e888fc 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -5,6 +5,8 @@ plugins { id "dev.flutter.flutter-gradle-plugin" id "com.google.firebase.crashlytics" id "com.huawei.agconnect" +// id("com.mapbox.gradle.application") +// id("com.mapbox.gradle.plugins.ndk") } @@ -146,6 +148,7 @@ dependencies { annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' implementation 'com.mapbox.maps:android:11.5.0' +// implementation 'com.mapbox.maps:android:11.4.0' // AARs implementation files('libs/PenNavUI.aar') diff --git a/android/build.gradle b/android/build.gradle index a255ad0a..74abf447 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -3,6 +3,19 @@ buildscript { mavenCentral() google() maven { url "https://developer.huawei.com/repo/" } + maven { + url = uri("https://api.mapbox.com/downloads/v2/releases/maven") + credentials { + username = "mapbox" + password = "sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg" + if (password == null || password == "") { + throw new GradleException("MAPBOX_DOWNLOADS_TOKEN isn't set. Set it to the project properties or to the environment variables.") + } + } + authentication { + basic(BasicAuthentication) + } + } } dependencies { classpath 'com.android.tools.build:gradle:8.1.0' diff --git a/android/settings.gradle b/android/settings.gradle index d1f38508..39151228 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -131,10 +131,6 @@ pluginManagement { // return vitalSignEnginePath // }() - - - - repositories { google() mavenCentral() @@ -166,7 +162,6 @@ pluginManagement { } maven { url 'https://api.mapbox.com/downloads/v2/releases/maven' - credentials { username = 'mapbox' password = "sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg" diff --git a/lib/core/model/radiology/final_radiology.dart b/lib/core/model/radiology/final_radiology.dart index 82f2bf94..4d0cea68 100644 --- a/lib/core/model/radiology/final_radiology.dart +++ b/lib/core/model/radiology/final_radiology.dart @@ -44,6 +44,7 @@ class FinalRadiology { bool? isCVI; bool? isRadMedicalReport; bool? isLiveCareAppointment; + String? exam_Id; FinalRadiology( {this.setupID, @@ -88,7 +89,8 @@ class FinalRadiology { this.speciality, this.isCVI, this.isRadMedicalReport, - this.isLiveCareAppointment}); + this.isLiveCareAppointment, + this.exam_Id}); FinalRadiology.fromJson(Map json) { try { @@ -135,6 +137,7 @@ class FinalRadiology { // speciality = json['Speciality'].cast(); isCVI = json['isCVI']; isRadMedicalReport = json['isRadMedicalReport']; + exam_Id = json['Exam_id']; } catch (e) { print(e); } diff --git a/lib/core/service/medical/medical_service.dart b/lib/core/service/medical/medical_service.dart index 1fafa1c1..fee1a4ec 100644 --- a/lib/core/service/medical/medical_service.dart +++ b/lib/core/service/medical/medical_service.dart @@ -55,7 +55,7 @@ class MedicalService extends BaseService { getSchedule(DoctorList doctorRequest) async { Map request; - request = {'DoctorID': doctorRequest.doctorID, 'ProjectID': doctorRequest.projectID, 'ClinicID': doctorRequest.clinicID, 'DoctorWorkingHoursDays': 7}; + request = {'DoctorID': doctorRequest.doctorID, 'ProjectID': doctorRequest.projectID, 'ClinicID': doctorRequest.clinicID, 'DoctorWorkingHoursDays': 90}; dynamic localRes; await baseAppClient.post(DOCTOR_SCHEDULE_URL, onSuccess: (response, statusCode) async { localRes = response; @@ -68,7 +68,7 @@ class MedicalService extends BaseService { getFreeSlot(DoctorList doctorRequest) async { Map request; - request = {'DoctorID': doctorRequest.doctorID, 'ProjectID': doctorRequest.projectID, 'ClinicID': doctorRequest.clinicID, 'DoctorWorkingHoursDays': 7}; + request = {'DoctorID': doctorRequest.doctorID, 'ProjectID': doctorRequest.projectID, 'ClinicID': doctorRequest.clinicID, 'DoctorWorkingHoursDays': 90}; dynamic localRes; await baseAppClient.post(GET_DOCTOR_FREE_SLOTS, onSuccess: (response, statusCode) async { localRes = response; diff --git a/lib/core/service/medical/radiology_service.dart b/lib/core/service/medical/radiology_service.dart index d2c6be86..4805432a 100644 --- a/lib/core/service/medical/radiology_service.dart +++ b/lib/core/service/medical/radiology_service.dart @@ -12,7 +12,7 @@ class RadiologyService extends BaseService { String radReportPDF = ""; - Future getRadImageURL({int? invoiceNo, String? invoiceType, int? lineItem, int? projectId, bool? isVidaPlus}) async { + Future getRadImageURL({int? invoiceNo, String? invoiceType, int? lineItem, int? projectId, bool? isVidaPlus, String? examId}) async { hasError = false; final Map body = new Map(); body['InvoiceNo'] = isVidaPlus! ? "0" : invoiceNo; @@ -20,6 +20,7 @@ class RadiologyService extends BaseService { body['LineItemNo'] = lineItem; body['ProjectID'] = projectId; body['InvoiceType'] = invoiceType; + body['ExamId'] = examId; await baseAppClient.post(GET_RAD_IMAGE_URL, isAllowAny: true, onSuccess: (dynamic response, int statusCode) { url = response['Data']; diff --git a/lib/core/viewModels/medical/radiology_view_model.dart b/lib/core/viewModels/medical/radiology_view_model.dart index 2ab38b70..5e1fdf40 100644 --- a/lib/core/viewModels/medical/radiology_view_model.dart +++ b/lib/core/viewModels/medical/radiology_view_model.dart @@ -56,9 +56,9 @@ class RadiologyViewModel extends BaseViewModel { String get radImageURL => _radiologyService.url; - getRadImageURL({required int invoiceNo, String? invoiceType, required int lineItem, required int projectId, required bool isVidaPlus}) async { + getRadImageURL({required int invoiceNo, String? invoiceType, required int lineItem, required int projectId, required bool isVidaPlus, required String examId}) async { setState(ViewState.Busy); - await _radiologyService.getRadImageURL(invoiceNo: invoiceNo, invoiceType: invoiceType, lineItem: lineItem, projectId: projectId, isVidaPlus: isVidaPlus); + await _radiologyService.getRadImageURL(invoiceNo: invoiceNo, invoiceType: invoiceType, lineItem: lineItem, projectId: projectId, isVidaPlus: isVidaPlus, examId: examId); if (_radiologyService.hasError) { error = _radiologyService.error!; setState(ViewState.Error); diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index 3eb88925..0b61888a 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -99,7 +99,7 @@ class _ConfirmLogin extends State { late ToDoCountProviderModel toDoProvider; var dob; - late int isHijri; + int isHijri = 0; var healthId; @override diff --git a/lib/pages/medical/radiology/radiology_details_page.dart b/lib/pages/medical/radiology/radiology_details_page.dart index 7bfa2522..e86f22d5 100644 --- a/lib/pages/medical/radiology/radiology_details_page.dart +++ b/lib/pages/medical/radiology/radiology_details_page.dart @@ -33,7 +33,8 @@ class RadiologyDetailsPage extends StatelessWidget { invoiceType: finalRadiology!.invoiceType, lineItem: finalRadiology!.invoiceLineItemNo!, invoiceNo: Utils.isVidaPlusProject(projectViewModel, finalRadiology!.projectID!) ? finalRadiology!.invoiceNo_VP : finalRadiology!.invoiceNo, - isVidaPlus: Utils.isVidaPlusProject(projectViewModel, finalRadiology!.projectID!)), + isVidaPlus: Utils.isVidaPlusProject(projectViewModel, finalRadiology!.projectID!), + examId: finalRadiology!.exam_Id ?? ""), builder: (_, model, widget) => AppScaffold( appBarTitle: TranslationBase.of(context).report, isShowAppBar: true,