From 4268314ed91e2b544a8a71ebf6d8f90ccffc5b81 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Wed, 3 Jun 2026 11:07:31 +0530 Subject: [PATCH 1/2] GWM : tpa claims logs push into table --- app/Config/Routes.php | 1 + app/Controllers/ApiServiceController.php | 6 +- app/Controllers/FhplApiController.php | 22 +-- app/Controllers/HealthIndiaApiController.php | 24 ++-- app/Controllers/MediAssistApiController.php | 14 +- app/Controllers/TicketController.php | 37 +++++ app/Controllers/VidalApiController.php | 39 +++--- app/Controllers/VoloApiController.php | 24 ++-- app/Helpers/tpa_claim_push_log_helper.php | 48 +++++++ app/Views/ticket_list.php | 135 ++++++++++++++++++- app/Views/ticket_search.php | 53 ++++++++ 11 files changed, 338 insertions(+), 65 deletions(-) create mode 100644 app/Helpers/tpa_claim_push_log_helper.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 55fa525f..32b98290 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -803,6 +803,7 @@ $routes->group("/ticket", ["filter" => "authMVC"], function ($routes) { $routes->get('feedback-list','TicketController::feedbackList'); $routes->match(['get', 'post'], 'claim-upload','TicketController::claimDumpUpload'); $routes->get('remove','TicketController::removeTicket'); + $routes->get('tpa-claim-push-logs','TicketController::getTpaClaimPushLogs'); $routes->get('new/(:any)','TicketController::ticket_form/$1'); $routes->post('create','TicketController::createTicket'); $routes->post('update','TicketController::updateTicket'); diff --git a/app/Controllers/ApiServiceController.php b/app/Controllers/ApiServiceController.php index 18eac66a..735cbfb0 100644 --- a/app/Controllers/ApiServiceController.php +++ b/app/Controllers/ApiServiceController.php @@ -50,7 +50,9 @@ class ApiServiceController extends BaseController // Push Claims public function pushClaims($claimId) { - + helper('tpa_claim_push_log'); + init_tpa_claim_push_logs($claimId); + $data = $this->db->table('ticket_master tm') ->select('tm.id,tm.tpa_id ')->where('tm.id', $claimId)->get()->getRowArray(); // single record @@ -79,7 +81,7 @@ class ApiServiceController extends BaseController $voloApiController = new VoloApiController(); return $voloApiController->SubmitClaim($claimId); }else{ - log_message('error', "This ticket id ( {$claimId} ) TPA has no API service enabled. TPA ID : {$tpaID}"); + tpa_claim_push_log($claimId, "This ticket id ( {$claimId} ) TPA has no API service enabled. TPA ID : {$tpaID}"); } } diff --git a/app/Controllers/FhplApiController.php b/app/Controllers/FhplApiController.php index 6d684e1c..16bc30ed 100644 --- a/app/Controllers/FhplApiController.php +++ b/app/Controllers/FhplApiController.php @@ -70,7 +70,7 @@ class FhplApiController extends BaseController public function SubmitClaim($claimId = null) // 515 { - helper('api'); + helper(['api', 'tpa_claim_push_log']); $data = $this->db->table('ticket_master tm') ->select(' @@ -99,7 +99,7 @@ class FhplApiController extends BaseController if (count($data) && $data['filePath'] == null) { - log_message('error', "FHPL - Claim Push FAILED | claimId: '.$claimId.' - Claim or File Missing"); + tpa_claim_push_log($claimId, "FHPL - Claim Push FAILED | claimId: {$claimId} - Claim or File Missing"); return ['status' => false, 'message' => 'Claim Push FAILED | Claim or File Missing']; } @@ -109,7 +109,7 @@ class FhplApiController extends BaseController $pdfPath = WRITEPATH . 'uploads/claim_files/' . $filename; if (!file_exists($pdfPath)) { - log_message('error', "FHPL - Claim Push FAILED | claimId: '.$claimId.' - PDF not found on server"); + tpa_claim_push_log($claimId, "FHPL - Claim Push FAILED | claimId: {$claimId} - PDF not found on server"); return ['status' => false, 'message' => 'Claim Push FAILED | PDF not found on server']; } @@ -119,7 +119,7 @@ class FhplApiController extends BaseController // Generate FHPL Token $tokenResponse = $this->generateAuthToken(); if (empty($tokenResponse['data']['access_token'])) { - log_message('error', "FHPL - Claim Push FAILED | claimId: '.$claimId.' - FHPL Token generation failed"); + tpa_claim_push_log($claimId, "FHPL - Claim Push FAILED | claimId: {$claimId} - FHPL Token generation failed"); return ['status' => false, 'message' => 'Claim Push FAILED | FHPL Token generation failed']; } $token = $tokenResponse['data']['access_token']; @@ -154,14 +154,14 @@ class FhplApiController extends BaseController "Content-Type: application/json" ]; - log_message('error', 'FHPL - Claim Push | claimId: '.$claimId.' | payload: '.json_encode($body)); + tpa_claim_push_log($claimId, 'FHPL - Claim Push | claimId: '.$claimId.' | payload: '.json_encode($body)); $response = call_third_party_api($url, 'POST', $headers, $body); - log_message('error', 'FHPL - Claim Push RESPONSE | ' . json_encode($response)); + tpa_claim_push_log($claimId, 'FHPL - Claim Push RESPONSE | ' . json_encode($response)); if($response['status'] != true){ - log_message('error', 'FHPL - Claim Push FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); + tpa_claim_push_log($claimId, 'FHPL - Claim Push FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); $this->db->table('ticket_master') ->where('id',$claimId) ->update([ 'tpa_push_response' => json_encode($response) ]); @@ -193,15 +193,15 @@ class FhplApiController extends BaseController ->where('id', $file_id) ->update([ 'is_file_sent_to_tpa' => 1 ]); - log_message('error','HEALTH_INDIA - Claim Push | Updating claim_files table for file_id: '.$file_id); + tpa_claim_push_log($claimId, 'FHPL - Claim Push | Updating claim_files table for file_id: '.$file_id); }else{ - log_message('error','HEALTH_INDIA - Claim Push | No file_id found to update claim_files table.'); + tpa_claim_push_log($claimId, 'FHPL - Claim Push | No file_id found to update claim_files table.'); } - log_message('error', 'FHPL - Claim Push SUCCESS | claimId: '.$claimId.' | claimNO: '.$fhplClaimNo); + tpa_claim_push_log($claimId, 'FHPL - Claim Push SUCCESS | claimId: '.$claimId.' | claimNO: '.$fhplClaimNo); return ['status' => true, 'message' => 'Claim Push SUCCESS', 'response' => $response]; }else { - log_message('error', 'FHPL - Claim Push API SUCCESS BUT claimsInfo EMPTY | response: '.json_encode($response)); + tpa_claim_push_log($claimId, 'FHPL - Claim Push API SUCCESS BUT claimsInfo EMPTY | response: '.json_encode($response)); return ['status' => false, 'message' => 'Claim Push API SUCCESS BUT claimsInfo EMPTY']; } } diff --git a/app/Controllers/HealthIndiaApiController.php b/app/Controllers/HealthIndiaApiController.php index 46b67043..485e81d9 100644 --- a/app/Controllers/HealthIndiaApiController.php +++ b/app/Controllers/HealthIndiaApiController.php @@ -84,9 +84,9 @@ class HealthIndiaApiController extends BaseController public function SubmitClaim($claimId = null) { - helper('api'); + helper(['api', 'tpa_claim_push_log']); - log_message('error', 'HEALTH_INDIA - Claim Push | Started for claimId: ' . $claimId); + tpa_claim_push_log($claimId, 'HEALTH_INDIA - Claim Push | Started for claimId: ' . $claimId); $data = $this->db->table('ticket_master tm') ->select(' @@ -121,12 +121,12 @@ class HealthIndiaApiController extends BaseController // dd($data); if (!$data) { - log_message('error', "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - Claim not found"); + tpa_claim_push_log($claimId, "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - Claim not found"); return ['status' => false, 'message' => 'Claim Push FAILED | Claim not found']; } if ($data['filePath'] == null) { - log_message('error', "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - File Missing"); + tpa_claim_push_log($claimId, "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - File Missing"); return ['status' => false, 'message' => 'Claim Push FAILED | File Missing']; } @@ -136,7 +136,7 @@ class HealthIndiaApiController extends BaseController $pdfPath = WRITEPATH . 'uploads/claim_files/' . $filename; if (!file_exists($pdfPath)) { - log_message('error', "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - PDF not found on server at path: {$pdfPath}"); + tpa_claim_push_log($claimId, "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - PDF not found on server at path: {$pdfPath}"); return ['status' => false, 'message' => 'Claim Push FAILED | PDF not found on server']; } @@ -146,7 +146,7 @@ class HealthIndiaApiController extends BaseController // Generate Health India Token $tokenResponse = $this->generateAuthToken(); if (empty($tokenResponse['data']['result'][0]['access_token'])) { - log_message('error', "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - Token generation failed"); + tpa_claim_push_log($claimId, "HEALTH_INDIA - Claim Push FAILED | claimId: {$claimId} - Token generation failed"); return; } $token = $tokenResponse['data']['result'][0]['access_token']; @@ -206,14 +206,14 @@ class HealthIndiaApiController extends BaseController "Content-Type: application/json" ]; - log_message('error', 'HEALTH_INDIA - Claim Push | claimId: ' . $claimId . ' | URL: ' . $url ); + tpa_claim_push_log($claimId, 'HEALTH_INDIA - Claim Push | claimId: ' . $claimId . ' | URL: ' . $url); $response = call_third_party_api($url, 'POST', $headers, $body); // dd($response); if ($response['status'] != true) { - log_message('error', 'HEALTH_INDIA - Claim Push FAILED | claimId: ' . $claimId . ' | response: ' . json_encode($response)); + tpa_claim_push_log($claimId, 'HEALTH_INDIA - Claim Push FAILED | claimId: ' . $claimId . ' | response: ' . json_encode($response)); $this->db->table('ticket_master') ->where('id', $claimId) ->update(['tpa_push_response' => json_encode($response)]); @@ -240,15 +240,15 @@ class HealthIndiaApiController extends BaseController ->where('id', $file_id) ->update([ 'is_file_sent_to_tpa' => 1 ]); - log_message('error','HEALTH_INDIA - Claim Push | Updating claim_files table for file_id: '.$file_id); + tpa_claim_push_log($claimId, 'HEALTH_INDIA - Claim Push | Updating claim_files table for file_id: '.$file_id); }else{ - log_message('error','HEALTH_INDIA - Claim Push | No file_id found to update claim_files table.'); + tpa_claim_push_log($claimId, 'HEALTH_INDIA - Claim Push | No file_id found to update claim_files table.'); } - log_message('error', 'HEALTH_INDIA - Claim Push SUCCESS | claimId: ' . $claimId . ' | CCN: ' . $ccn . ' | CCN_EXT: ' . $ccnExt); + tpa_claim_push_log($claimId, 'HEALTH_INDIA - Claim Push SUCCESS | claimId: ' . $claimId . ' | CCN: ' . $ccn . ' | CCN_EXT: ' . $ccnExt); return ['status' => true, 'message' => 'Claim Push SUCCESS', 'response' => $response]; } else { - log_message('error', 'HEALTH_INDIA - Claim Push API SUCCESS BUT CCN EMPTY | claimId: ' . $claimId . ' | response: ' . json_encode($response)); + tpa_claim_push_log($claimId, 'HEALTH_INDIA - Claim Push API SUCCESS BUT CCN EMPTY | claimId: ' . $claimId . ' | response: ' . json_encode($response)); return ['status' => false, 'message' => 'Claim Push API SUCCESS BUT CCN EMPTY']; } diff --git a/app/Controllers/MediAssistApiController.php b/app/Controllers/MediAssistApiController.php index cb39d93c..a05b8853 100644 --- a/app/Controllers/MediAssistApiController.php +++ b/app/Controllers/MediAssistApiController.php @@ -30,7 +30,7 @@ class MediAssistApiController extends BaseController public function SubmitClaim ($claimId = null) { - helper('api'); + helper(['api', 'tpa_claim_push_log']); // $url = ''. getenv('MEDI_ASSIST_API_BASE_URL').'/SubmitClaim'; $url = getenv('MEDI_ASSIST_API_BASE_URL_CLAIMSUBMIT'); @@ -133,14 +133,14 @@ class MediAssistApiController extends BaseController // ] // ]; - log_message('error','MEDI_ASSIST - Claim Push | claimId: '.$claimId.' | payload: '.json_encode($body)); + tpa_claim_push_log($claimId, 'MEDI_ASSIST - Claim Push | claimId: '.$claimId.' | payload: '.json_encode($body)); $response = call_third_party_api($url, $method, $headers, $body); if($response['status'] != true){ - log_message('error','MEDI_ASSIST - Claim Push FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); + tpa_claim_push_log($claimId, 'MEDI_ASSIST - Claim Push FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); $this->db->table('ticket_master') ->where('id',$claimId) ->update([ 'tpa_push_response' => json_encode($response) ]); @@ -153,7 +153,7 @@ class MediAssistApiController extends BaseController if(!empty($claimRef)){ - log_message('error','MEDI_ASSIST - Claim Push SUCCESS | claimId: '.$claimId.' | claimReferenceNo: '.$claimRef); + tpa_claim_push_log($claimId, 'MEDI_ASSIST - Claim Push SUCCESS | claimId: '.$claimId.' | claimReferenceNo: '.$claimRef); // Update claim reference number in ticket_master $this->db->table('ticket_master') @@ -167,15 +167,15 @@ class MediAssistApiController extends BaseController ->where('id', $file_id) ->update([ 'is_file_sent_to_tpa' => 1 ]); - log_message('error','MEDI_ASSIST - Claim Push | Updating claim_files table for file_id: '.$file_id); + tpa_claim_push_log($claimId, 'MEDI_ASSIST - Claim Push | Updating claim_files table for file_id: '.$file_id); }else{ - log_message('error','MEDI_ASSIST - Claim Push | No file_id found to update claim_files table.'); + tpa_claim_push_log($claimId, 'MEDI_ASSIST - Claim Push | No file_id found to update claim_files table.'); } return ['status' => true, 'message' => 'Claim Push SUCCESS', 'response' => $response]; } else { - log_message('error','MEDI_ASSIST - Claim Push API Failed | claimReferenceNo EMPTY | claimId: '.$claimId.' | response: '.json_encode($response)); + tpa_claim_push_log($claimId, 'MEDI_ASSIST - Claim Push API Failed | claimReferenceNo EMPTY | claimId: '.$claimId.' | response: '.json_encode($response)); return ['status' => false, 'message' => 'Claim Push API Failed', 'response' => $response]; } diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php index 4e219a4a..55af0407 100644 --- a/app/Controllers/TicketController.php +++ b/app/Controllers/TicketController.php @@ -2478,6 +2478,43 @@ class TicketController extends BaseController } + public function getTpaClaimPushLogs() + { + $ticketId = $this->request->getGet('ticket_id'); + + if (empty($ticketId)) { + return $this->respond([ + 'status' => false, + 'message' => 'ticket_id is required', + ], 400); + } + + $ticket = $this->ticketMasterModel + ->select('id, tpa_claim_push_logs') + ->where('id', $ticketId) + ->where('is_active', 1) + ->first(); + + if (!$ticket) { + return $this->respond([ + 'status' => false, + 'message' => 'Claim not found', + ], 404); + } + + $logs = trim((string) ($ticket['tpa_claim_push_logs'] ?? '')); + + return $this->respond([ + 'status' => true, + 'message' => 'TPA claim push logs fetched successfully', + 'data' => [ + 'ticket_id' => (int) $ticketId, + 'logs' => $logs, + 'has_logs' => $logs !== '', + ], + ], 200); + } + //---- Email Trigger Part---------------------------------------------------------------------------------------------- public function constructMailContent($ticket_id, $status_id = null) diff --git a/app/Controllers/VidalApiController.php b/app/Controllers/VidalApiController.php index 889ae745..0fec2c73 100644 --- a/app/Controllers/VidalApiController.php +++ b/app/Controllers/VidalApiController.php @@ -41,13 +41,14 @@ class VidalApiController extends BaseController - function uploadFileToVidal($filePath,$filename) + function uploadFileToVidal($filePath, $filename, $claimId = null) { + helper('tpa_claim_push_log'); // $apiUrl = "https://devapigw.vidalhealthtpa.com/partner-integration/api/files/upload-url"; $apiUrl = getenv('VIDAL_API_BASE_URL').'/files/upload-url'; $subscriptionKey = getenv('VIDAL_API_SUBSCRIPTION_KEY'); - log_message('error', "VIDAL - Claim Push | Starting file upload process for filename: $filename | Path: $filePath"); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | Starting file upload process for filename: $filename | Path: $filePath"); // Step 1: Get signed URL from Vidal API // $filePath = '/opt/lampp/htdocs/nhance/writable/uploads/claim_files/1760013019_73d94af7b96ddc2e3d51.png'; @@ -57,7 +58,7 @@ class VidalApiController extends BaseController "Ocp-Apim-Subscription-Key: $subscriptionKey" ]; - log_message('error', "VIDAL - Claim Push | Requesting signed URL from Vidal API: $apiUrl | Payload: $payload"); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | Requesting signed URL from Vidal API: $apiUrl | Payload: $payload"); $ch = curl_init($apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @@ -67,7 +68,7 @@ class VidalApiController extends BaseController $response = curl_exec($ch); if (curl_errno($ch)) { - log_message('error', "VIDAL - Claim Push Curl error while requesting signed URL: " . curl_error($ch)); + tpa_claim_push_log($claimId, "VIDAL - Claim Push Curl error while requesting signed URL: " . curl_error($ch)); return ["status" => false, "message" => curl_error($ch)]; } curl_close($ch); @@ -75,14 +76,14 @@ class VidalApiController extends BaseController $responseData = json_decode($response, true); if (!isset($responseData['data']['signedUrl']) || !isset($responseData['data']['fileId'])) { - log_message('error', "VIDAL - Claim Push | Invalid signed URL response received: " . json_encode($responseData)); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | Invalid signed URL response received: " . json_encode($responseData)); return ["status" => false, "message" => "Invalid signed URL response", "response" => $responseData]; } $signedUrl = $responseData['data']['signedUrl']; $fileId = $responseData['data']['fileId']; - log_message('error', "VIDAL - Claim Push | Received signed URL & fileId. fileId: $fileId"); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | Received signed URL & fileId. fileId: $fileId"); // Step 2: Upload file to signed URL using PUT (Azure Blob) $fileSize = filesize($filePath); @@ -107,12 +108,12 @@ class VidalApiController extends BaseController curl_close($ch2); if ($curlErr) { - log_message('error', "VIDAL - Claim Push | Curl error during file upload: $curlErr"); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | Curl error during file upload: $curlErr"); return ["status" => false, "message" => "File upload failed", "data" => $curlErr]; } if ($httpCode !== 200 && $httpCode !== 201) { - log_message('error', "VIDAL - Claim Push | File upload failed with HTTP Code: $httpCode | Response: $uploadResponse"); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | File upload failed with HTTP Code: $httpCode | Response: $uploadResponse"); return [ "status" => false, "message" => "File upload failed", @@ -133,7 +134,7 @@ class VidalApiController extends BaseController public function SubmitClaim ($claimId = null) //515 { - helper('api'); + helper(['api', 'tpa_claim_push_log']); // Fetch the data from DB $data = $this->db->table('ticket_master tm') @@ -174,7 +175,7 @@ class VidalApiController extends BaseController ->getRowArray(); // single record if (count($data) && $data['filePath'] == null) { - log_message('error', "VIDAL - Claim Push | Submit claim failed - Claim or File Missing"); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | Submit claim failed - Claim or File Missing"); return ['status' => false, 'message' => 'Claim Push FAILED | Claim or File Missing']; } @@ -185,9 +186,9 @@ class VidalApiController extends BaseController // dd($data); // Upload file first - $upload = $this->uploadFileToVidal($filePath,$filename); + $upload = $this->uploadFileToVidal($filePath, $filename, $claimId); if ($upload['status'] !== true) { - log_message('error', "VIDAL - Claim Push | Submit claim failed - File upload failed"); + tpa_claim_push_log($claimId, "VIDAL - Claim Push | Submit claim failed - File upload failed"); return $this->response->setJSON([ 'status' => false, 'message' => 'File upload failed', @@ -247,7 +248,7 @@ class VidalApiController extends BaseController ]; // dd($body); - log_message('error', 'VIDAL - Claim Push | claimId: '.$claimId.' | payload: '.json_encode($body)); + tpa_claim_push_log($claimId, 'VIDAL - Claim Push | claimId: '.$claimId.' | payload: '.json_encode($body)); // $body = [ // 'policyNo' => "351500/D0534/PP/20-20/PC", @@ -279,7 +280,7 @@ class VidalApiController extends BaseController $response = call_third_party_api($url, $method, $headers, $body); if($response['status'] != true){ - log_message('error', 'VIDAL - Claim Push FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); + tpa_claim_push_log($claimId, 'VIDAL - Claim Push FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); $this->db->table('ticket_master') ->where('id',$claimId) ->update([ 'tpa_push_response' => json_encode($response) ]); @@ -295,7 +296,7 @@ class VidalApiController extends BaseController if(!empty($claimNO) && !empty($claimInwardNO)){ - log_message('error', 'VIDAL - Claim Push SUCCESS | claimId: '.$claimId.' | claimNO: '.$claimNO.' | claimInwardNO: '.$claimInwardNO); + tpa_claim_push_log($claimId, 'VIDAL - Claim Push SUCCESS | claimId: '.$claimId.' | claimNO: '.$claimNO.' | claimInwardNO: '.$claimInwardNO); $this->db->table('ticket_master') ->where('id',$claimId) @@ -308,19 +309,19 @@ class VidalApiController extends BaseController ->where('id', $tpa_sent_file_id) ->update([ 'is_file_sent_to_tpa' => 1 ]); - log_message('error','MEDI_ASSIST - Claim Push | Updating claim_files table for file_id: '.$tpa_sent_file_id); + tpa_claim_push_log($claimId, 'VIDAL - Claim Push | Updating claim_files table for file_id: '.$tpa_sent_file_id); }else{ - log_message('error','MEDI_ASSIST - Claim Push | No file_id found to update claim_files table.'); + tpa_claim_push_log($claimId, 'VIDAL - Claim Push | No file_id found to update claim_files table.'); } return ['status' => true, 'message' => 'Claim Push SUCCESS']; } else { - log_message('error', 'VIDAL - Claim Push API SUCCESS BUT claimNO,claimInwardNO EMPTY | claimId: '.$claimId.' | response: '.json_encode($response)); + tpa_claim_push_log($claimId, 'VIDAL - Claim Push API SUCCESS BUT claimNO,claimInwardNO EMPTY | claimId: '.$claimId.' | response: '.json_encode($response)); return ['status' => false, 'message' => 'Claim Push API SUCCESS BUT claimNO,claimInwardNO EMPTY']; } }else{ - log_message('error', 'VIDAL - Claim Push API FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); + tpa_claim_push_log($claimId, 'VIDAL - Claim Push API FAILED | claimId: '.$claimId.' | response: '.json_encode($response)); return ['status' => false, 'message' => 'Claim Push API FAILED']; } diff --git a/app/Controllers/VoloApiController.php b/app/Controllers/VoloApiController.php index b1bc0a4b..c256ecfa 100644 --- a/app/Controllers/VoloApiController.php +++ b/app/Controllers/VoloApiController.php @@ -682,7 +682,7 @@ class VoloApiController extends BaseController */ public function SubmitClaim($claimId = null) { - helper('api'); + helper(['api', 'tpa_claim_push_log']); $data = $this->db->table('ticket_master tm') ->select(' @@ -702,12 +702,12 @@ class VoloApiController extends BaseController ->getRowArray(); if (!$data) { - log_message('error', 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | claim not found'); + tpa_claim_push_log($claimId, 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | claim not found'); return ['status' => false, 'message' => 'Claim Push FAILED | Claim not found']; } if (empty($data['filePath'])) { - log_message('error', 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | file missing'); + tpa_claim_push_log($claimId, 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | file missing'); return ['status' => false, 'message' => 'Claim Push FAILED | File Missing']; } @@ -715,7 +715,7 @@ class VoloApiController extends BaseController $filename = basename($data['filePath']); $pdfPath = WRITEPATH . 'uploads/claim_files/' . $filename; if (!is_readable($pdfPath)) { - log_message('error', 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | PDF not readable'); + tpa_claim_push_log($claimId, 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | PDF not readable'); return ['status' => false, 'message' => 'Claim Push FAILED | PDF not found on server']; } @@ -723,13 +723,13 @@ class VoloApiController extends BaseController $entityId = $this->resolveEntityId($data['policyNo'] ?? ''); if ($entityId === null) { - log_message('error', 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | entity id not resolved'); + tpa_claim_push_log($claimId, 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | entity id not resolved'); return ['status' => false, 'message' => 'Claim Push FAILED | entity id not resolved']; } $hospitalId = getenv('VOLO_DEFAULT_HOSPITAL_ID'); if ($hospitalId === false || $hospitalId === '') { - log_message('error', 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | VOLO_DEFAULT_HOSPITAL_ID not set'); + tpa_claim_push_log($claimId, 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | VOLO_DEFAULT_HOSPITAL_ID not set'); return ['status' => false, 'message' => 'Claim Push FAILED | hospital id not configured']; } @@ -754,12 +754,12 @@ class VoloApiController extends BaseController 'insurerPolicyNumber' => (string) ($data['policyNo'] ?? ''), ]; - log_message('error', 'VOLO - Claim Push | claimId: ' . $claimId . ' | payload: ' . json_encode($payload)); + tpa_claim_push_log($claimId, 'VOLO - Claim Push | claimId: ' . $claimId . ' | payload: ' . json_encode($payload)); $response = $this->intimateClaim($payload); if (empty($response['status'])) { - log_message('error', 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | ' . json_encode($response)); + tpa_claim_push_log($claimId, 'VOLO - Claim Push FAILED | claimId: ' . $claimId . ' | ' . json_encode($response)); $this->db->table('ticket_master') ->where('id', $claimId) ->update(['tpa_push_response' => json_encode($response)]); @@ -781,7 +781,7 @@ class VoloApiController extends BaseController 'tpa_claim_id' => $ref, 'updated_at' => date('Y-m-d H:i:s'), ]); - log_message('error', 'VOLO - Claim Push SUCCESS | claimId: ' . $claimId . ' | ref: ' . $ref); + tpa_claim_push_log($claimId, 'VOLO - Claim Push SUCCESS | claimId: ' . $claimId . ' | ref: ' . $ref); // Update claim files table that file is sent to tpa for this claim if(!empty($file_id)){ @@ -790,15 +790,15 @@ class VoloApiController extends BaseController ->where('id', $file_id) ->update([ 'is_file_sent_to_tpa' => 1 ]); - log_message('error','VOLO - Claim Push | Updating claim_files table for file_id: '.$file_id); + tpa_claim_push_log($claimId, 'VOLO - Claim Push | Updating claim_files table for file_id: '.$file_id); }else{ - log_message('error','VOLO - Claim Push | No file_id found to update claim_files table.'); + tpa_claim_push_log($claimId, 'VOLO - Claim Push | No file_id found to update claim_files table.'); } return ['status' => true, 'message' => 'Claim Push SUCCESS', 'response' => $response]; } - log_message('error', 'VOLO - Claim Push empty reference | claimId: ' . $claimId . ' | ' . json_encode($response)); + tpa_claim_push_log($claimId, 'VOLO - Claim Push empty reference | claimId: ' . $claimId . ' | ' . json_encode($response)); return ['status' => false, 'message' => 'Claim Push API response missing reference', 'response' => $response]; } diff --git a/app/Helpers/tpa_claim_push_log_helper.php b/app/Helpers/tpa_claim_push_log_helper.php new file mode 100644 index 00000000..cf9b2cc9 --- /dev/null +++ b/app/Helpers/tpa_claim_push_log_helper.php @@ -0,0 +1,48 @@ +table('ticket_master') + ->where('id', $claimId) + ->update(['tpa_claim_push_logs' => "[{$started}] Claim push started\n"]); + } +} + +if (!function_exists('tpa_claim_push_log')) { + /** + * Write to application log and append the same line to ticket_master.tpa_claim_push_logs. + */ + function tpa_claim_push_log($claimId, string $message, string $level = 'error'): void + { + log_message($level, $message); + + if ($claimId === null || $claimId === '') { + return; + } + + $timestamp = date('Y-m-d H:i:s'); + $line = "[{$timestamp}] {$message}\n"; + + $db = \Config\Database::connect(); + $row = $db->table('ticket_master') + ->select('tpa_claim_push_logs') + ->where('id', $claimId) + ->get() + ->getRowArray(); + + $existing = $row['tpa_claim_push_logs'] ?? ''; + $db->table('ticket_master') + ->where('id', $claimId) + ->update(['tpa_claim_push_logs' => $existing . $line]); + } +} diff --git a/app/Views/ticket_list.php b/app/Views/ticket_list.php index 2c55d981..092a431f 100644 --- a/app/Views/ticket_list.php +++ b/app/Views/ticket_list.php @@ -328,6 +328,9 @@ table.dataTable tbody td { Delete + + TPA Push Logs + @@ -346,8 +349,6 @@ table.dataTable tbody td { - -