import 'package:flutter/material.dart'; import 'package:hmg_patient_app_new/features/authentication/models/resp_models/authenticated_user_resp_model.dart'; import 'package:hmg_patient_app_new/features/radiology/radiology_repo.dart'; import 'package:hmg_patient_app_new/services/error_handler_service.dart'; import 'models/resp_models/patient_radiology_response_model.dart'; class RadiologyViewModel extends ChangeNotifier { bool isRadiologyOrdersLoading = false; bool isRadiologyPDFReportLoading = false; RadiologyRepo radiologyRepo; ErrorHandlerService errorHandlerService; List patientRadiologyOrders = []; String radiologyImageURL = ""; String patientRadiologyReportPDFBase64 = ""; RadiologyViewModel({required this.radiologyRepo, required this.errorHandlerService}); initRadiologyProvider() { patientRadiologyOrders.clear(); isRadiologyOrdersLoading = true; isRadiologyPDFReportLoading = true; radiologyImageURL = ""; getPatientRadiologyOrders(); notifyListeners(); } Future getPatientRadiologyOrders({Function(dynamic)? onSuccess, Function(String)? onError}) async { final result = await radiologyRepo.getPatientRadiologyOrders(patientId: "1231755"); result.fold( (failure) async => await errorHandlerService.handleError(failure: failure), (apiResponse) { if (apiResponse.messageStatus == 2) { // dialogService.showErrorDialog(message: apiResponse.errorMessage!, onOkPressed: () {}); } else if (apiResponse.messageStatus == 1) { patientRadiologyOrders = apiResponse.data!; isRadiologyOrdersLoading = false; notifyListeners(); if (onSuccess != null) { onSuccess(apiResponse); } } }, ); } Future getRadiologyImage({required PatientRadiologyResponseModel patientRadiologyResponseModel, Function(dynamic)? onSuccess, Function(String)? onError}) async { final result = await radiologyRepo.getRadiologyImage(patientRadiologyResponseModel: patientRadiologyResponseModel); result.fold( (failure) async => await errorHandlerService.handleError(failure: failure), (apiResponse) { if (apiResponse.messageStatus == 2) { // dialogService.showErrorDialog(message: apiResponse.errorMessage!, onOkPressed: () {}); } else if (apiResponse.messageStatus == 1) { radiologyImageURL = apiResponse.data!; notifyListeners(); if (onSuccess != null) { onSuccess(apiResponse); } } }, ); } Future getRadiologyPDF( {required PatientRadiologyResponseModel patientRadiologyResponseModel, required AuthenticatedUser authenticatedUser, Function(dynamic)? onSuccess, Function(String)? onError}) async { final result = await radiologyRepo.getRadiologyReportPDF(patientRadiologyResponseModel: patientRadiologyResponseModel, authenticatedUser: authenticatedUser); result.fold( (failure) async => await errorHandlerService.handleError( failure: failure, onOkPressed: () { onError!(failure.message); }, ), (apiResponse) { if (apiResponse.messageStatus == 2) { onError!(apiResponse.errorMessage!); // dialogService.showErrorDialog(message: apiResponse.errorMessage!, onOkPressed: () {}); } else if (apiResponse.messageStatus == 1) { patientRadiologyReportPDFBase64 = apiResponse.data!; isRadiologyPDFReportLoading = false; notifyListeners(); if (onSuccess != null) { onSuccess(apiResponse); } } }, ); } }