From 2c75657d5a4eefe987442a9f020737a29f2d8927 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Wed, 13 Aug 2025 18:36:47 +0530 Subject: [PATCH] CHANGE_Vidal_api_and_ticketing_system_scaffold - VADIVEL J 2025-08-13 --- app/Config/Routes.php | 13 +- .../ThzControllerCleaner.php | 67 ++++++ app/Controllers/ThzController.php | 168 ++++++++++++++ app/Controllers/VidalApiController.php | 214 ++++++++++++++++++ app/Models/ThzMasterModel.php | 42 ++++ app/Models/ThzMasterNotesModel.php | 78 +++++++ 6 files changed, 581 insertions(+), 1 deletion(-) create mode 100644 app/ControllerCleaners/ThzControllerCleaner.php create mode 100644 app/Controllers/ThzController.php create mode 100644 app/Controllers/VidalApiController.php create mode 100644 app/Models/ThzMasterModel.php create mode 100644 app/Models/ThzMasterNotesModel.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index e3685dd8..22e812fc 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -614,7 +614,7 @@ $routes->post("retrieveWebhookDataClaim","ClientWebHooksController::pullData_cla -//Third party Api Call +//Third party ICICILombard Api Call $routes->get('generateAuthToken','ICICILombardController::generateAuthToken'); $routes->get('createEnrollmentBatch','ICICILombardController::createEnrollmentBatch'); @@ -623,3 +623,14 @@ $routes->get('fetchUHIDDetails','ICICILombardController::fetchUHIDDetails'); $routes->get('testTracelog','TestBusinessController::a'); $routes->get("claimView", "EmployeeRestController::claimView"); + +//Third party Vidal Api Call + +$routes->post('hospitalNetwork','VidalApiController::hospitalNetwork'); +$routes->post('eCardService','VidalApiController::eCardService'); +$routes->post('claimStatusCheck','VidalApiController::claimStatusCheck'); +$routes->post('newClaim','VidalApiController::newClaim'); +$routes->post('enrollment','VidalApiController::enrollment'); + + +$routes->post("ticketCreation", "ThzController::ticketCreation"); \ No newline at end of file diff --git a/app/ControllerCleaners/ThzControllerCleaner.php b/app/ControllerCleaners/ThzControllerCleaner.php new file mode 100644 index 00000000..5208921c --- /dev/null +++ b/app/ControllerCleaners/ThzControllerCleaner.php @@ -0,0 +1,67 @@ +thzMasterModel = new ThzMasterModel(); + $this->thzMasterNotesModel = new ThzMasterNotesModel(); + } + + public function index() + { + // + } + + public function ticketCreation($data){ + + if(empty($data)){ + return false; + } + + $cleanedData = $data; + + return $cleanedData; + + + } + + public function ticketList($data){ + + if(empty($data)){ + return false; + } + + $cleanedData = $data; + + return $cleanedData; + + } + + public function ticketConversation($data){ + + if(empty($data)){ + return false; + } + + $cleanedData = $data; + + return $cleanedData; + + } + + + +} diff --git a/app/Controllers/ThzController.php b/app/Controllers/ThzController.php new file mode 100644 index 00000000..590e8f78 --- /dev/null +++ b/app/Controllers/ThzController.php @@ -0,0 +1,168 @@ +thzMasterModel = new ThzMasterModel(); + $this->thzMasterNotesModel = new ThzMasterNotesModel(); + $this->thzControllerCleaner = new ThzControllerCleaner(); + } + + public function index() + { + // + } + + public function ticketCreation(){ + + $data = $this->request->getJSON(true); + + $cleanedData = $this->thzControllerCleaner->ticketCreation($data); + + if ($cleanedData === false) { + return $this->response->setJSON((['status' => 'error', 'message' => 'Invalid data given'])); + } + + $result = $this->thzMasterModel->insert($cleanedData); + + return $this->response->setJSON((['status' => 'success', 'message' => 'Ticket created successfully'])); + + } + + public function ticketList(){ + + $data = $this->request->getJson(true); + + $cleanedData = $this->thzControllerCleaner->ticketList($data); + + if( $cleanedData === false ) { + return $this->response->setJSON((['status' => 'error', 'message' => 'Invalid data given'])); + } + + $id = $cleanedData['id'] ?? null; + + if (empty($id)) { + $result = $this->thzMasterModel->findAll(); + } + + $result = $this->thzMasterModel->where('id',$id)->findAll(); + + if(empty($result)){ + return $this->response->setJSON((['status' => 'error', 'message' => 'No tickets found'])); + } + + return $this->response->setJSON((['status' => 'success', 'data' => $result])); + + } + + public function ticketConversationSave(){ + + $data = $this->request->getJson(true); + + $cleanedData = $this->thzControllerCleaner->ticketList($data); + + if( $cleanedData === false ) { + return $this->response->setJSON((['status' => 'error', 'message' => 'Invalid data given'])); + } + + $result = $this->thzMasterNotesModel->insert($data); + + if(empty($result)){ + return $this->response->setJSON((['status' => 'error', 'message' => 'No tickets found'])); + } + + return $this->response->setJSON((['status' => 'success', 'data' => $result])); + + + } + + public function ticketListForUser(){ + + $data = $this->request->getJson(true); + + $cleanedData = $this->thzControllerCleaner->ticketList($data); + + if( $cleanedData === false ) { + return $this->response->setJSON((['status' => 'error', 'message' => 'Invalid data given'])); + } + + $result = $this->thzMasterNotesModel->insert($data); + + if(empty($result)){ + return $this->response->setJSON((['status' => 'error', 'message' => 'No tickets found'])); + } + + return $this->response->setJSON((['status' => 'success', 'data' => $result])); + + } + + public function conversationListForUserPerTicket(){ + + $data = $this->request->getJson(true); + + $cleanedData = $this->thzControllerCleaner->ticketList($data); + + if( $cleanedData === false ) { + return $this->response->setJSON((['status' => 'error', 'message' => 'Invalid data given'])); + } + + $thz_id = $cleanedData['thz_id'] ?? null; + + $result = $this->thzMasterNotesModel->conversationListForUserPerTicket($thz_id); + + if(empty($result)){ + return $this->response->setJSON((['status' => 'error', 'message' => 'No tickets found'])); + } + + return $this->response->setJSON((['status' => 'success', 'data' => $result])); + + } + + public function ticketListForAssignedStaff(){ + + } + + public function conversationListForAssignedStaffPerTicket(){ + + } + + + + + + /************************************************** PRIVATE FUNCTIONS ********************************************************/ + + + private function checkGeneralUserOrEmployee($data){ + + if($data['empcode']){ + return $data['empcode']; + } elseif ($data['mobile']) { + return $data['mobile']; + } elseif ($data['email']) { + return $data['email']; + } else { + return null; + } + + } + + + +} diff --git a/app/Controllers/VidalApiController.php b/app/Controllers/VidalApiController.php new file mode 100644 index 00000000..259e9841 --- /dev/null +++ b/app/Controllers/VidalApiController.php @@ -0,0 +1,214 @@ +request->getJSON(true); + + + helper('api'); + + $url = ''. getenv('VIDAL_API_BASE_URL').'/hospitalnetwork'; + $method = 'POST'; + + $headers = [ + 'Content-Type: application/json', + 'Authorization:'. getenv('VIDAL_API_KEY').'', + 'username:'. getenv('VIDAL_API_USERNAME').'', + 'password:'. getenv('VIDAL_API_PASSWORD').'', + 'policynumber:'. $postData['policyNo'] ?? '', + ]; + + + + $body = []; + + $response = call_third_party_api($url, $method, $headers, $body); + + + if($response['status'] != true){ + return $this->response->setJSON([ + 'status' => false, + 'message' => 'Token generation failed.', + 'data' => $response + ]); + } + + return $this->response->setJSON($response); + + } + + public function eCardService(){ + + $postData = $this->request->getJSON(true); + + helper('api'); + + $url = ''. getenv('VIDAL_API_BASE_URL').'/ecardservice'; + $method = 'POST'; + + + $headers = [ + 'Content-Type: application/json', + 'Authorization:'.getenv('VIDAL_API_KEY').'', + 'username:' .getenv('VIDAL_API_USERNAME').'', + 'password:' .getenv('VIDAL_API_PASSWORD').'', + 'PolicyNo:' .$postData['PolicyNo'] ?? '', + 'enrollmentNo:' .$postData['enrollmentNo'] ?? '', + ]; + + $body = [ + ]; + + $response = call_third_party_api($url, $method, $headers, $body); + + if($response['status'] != true){ + return $this->response->setJSON([ + 'status' => false, + 'message' => 'Token generation failed.', + 'data' => $response + ]); + } + + return $this->response->setJSON($response); + + } + + public function claimStatusCheck(){ + + $postData = $this->request->getJSON(true); + + helper('api'); + + $url = ''. getenv('VIDAL_API_BASE_URL').'/claimpreauthservice'; + $method = 'POST'; + + $headers = [ + 'Content-Type: application/json', + 'Authorization:' .getenv('VIDAL_API_KEY').'', + 'username:' .getenv('VIDAL_API_USERNAME').'', + 'password:' .getenv('VIDAL_API_PASSWORD').'', + 'PolicyNo:' .$postData['policyNo'] ?? '', + 'enrollmentNo:' .$postData['enrollmentNo'] ?? '', + 'empNo:' .$postData['empNo'] ?? '', + 'startdate:' .$postData['startdate'] ?? '', + 'enddate:' .$postData['enddate'] ?? '', + 'tpaclaimNo:' .$postData['tpaclaimNo'] ?? '' + ]; + + $body = []; + + $response = call_third_party_api($url, $method, $headers, $body); + + if($response['status'] != true){ + return $this->response->setJSON([ + 'status' => false, + 'message' => 'Token generation failed.', + 'data' => $response + ]); + } + + return $this->response->setJSON($response); + + } + + public function newClaim(){ + + $postData = $this->request->getPost(); + + helper('api'); + + $url = ''. getenv('VIDAL_API_BASE_URL').'/submitClaim'; + $method = 'POST'; + + $headers = [ + 'Content-Type: multipart/form-data', + 'Authorization:' .getenv('VIDAL_API_KEY').'', + ]; + + $body = [ + 'username:' .getenv('VIDAL_API_USERNAME').'', + 'password:' .getenv('VIDAL_API_PASSWORD').'', + 'PolicyNo:' .$postData['policyNo'] ?? '', + 'enrollmentId:' .$postData['enrollmentId'] ?? '', + 'typeOfClaim:' .$postData['typeOfClaim'] ?? '', + 'claimSubType:' .$postData['claimSubType'] ?? '', + 'requestedAmount:' .$postData['requestedAmount'] ?? '', + 'ailmentType:' .$postData['ailmentType'] ?? '', + 'admissionDate:' .$postData['admissionDate'] ?? '', + 'dischargeDate:' .$postData['dischargeDate'] ?? '', + 'hospitalName:' .$postData['hospitalName'] ?? '', + 'empanelmentNo:' .$postData['empanelmentNo'] ?? '', + 'documentType:' .$postData['documentType'] ?? '', + 'ailmentName:' .$postData['ailmentName'] ?? '', + 'hospitalAddress:' .$postData['hospitalAddress'] ?? '', + 'hospitalState:' .$postData['hospitalState'] ?? '', + 'hospitalCity:' .$postData['hospitalCity'] ?? '', + 'hospitalPinCode:' .$postData['hospitalPinCode'] ?? '', + 'hospitalPhoneNo:' .$postData['hospitalPhoneNo'] ?? '' + ]; + + $response = call_third_party_api($url, $method, $headers, $body); + + if($response['status'] != true){ + return $this->response->setJSON([ + 'status' => false, + 'message' => 'Token generation failed.', + 'data' => $response + ]); + } + + return $this->response->setJSON($response); + + } + + + public function enrollment(){ + + $postData = $this->request->getJSON(true); + + helper('api'); + + $url = ''. getenv('VIDAL_API_BASE_URL').'/enrollmendataservice'; + $method = 'POST'; + + $headers = [ + 'Content-Type: application/json', + 'Authorization:'. getenv('VIDAL_API_KEY').'', + 'username:' . getenv('VIDAL_API_USERNAME').'', + 'password:' . getenv('VIDAL_API_PASSWORD').'', + 'policyNo:' .$postData['policyNo'] ?? '', + 'startindex:' .$postData['startindex'] ?? '', + 'endindex:' .$postData['endindex'] ?? '' + ]; + + $body = [ + ]; + + $response = call_third_party_api($url, $method, $headers, $body); + + + if($response['status'] != true){ + return $this->response->setJSON([ + 'status' => false, + 'message' => 'Token generation failed.', + 'data' => $response + ]); + } + + return $this->response->setJSON($response); + } + + +} diff --git a/app/Models/ThzMasterModel.php b/app/Models/ThzMasterModel.php new file mode 100644 index 00000000..410a84ba --- /dev/null +++ b/app/Models/ThzMasterModel.php @@ -0,0 +1,42 @@ + $thz_id ]; + + $result = $this->db->query($sql,$binds)->getResultArray() ; + + return $result; + + } + + +}