2021-02-25 08:41:02 +00:00
< ? php
defined ( 'BASEPATH' ) OR exit ( 'No direct script access allowed' );
/**
* Created by PhpStorm .
* User : capp
* Date : 29 / 05 / 2018
* Time : 15 : 49
*/
class Nano_health_model extends CI_Model
{
2021-10-05 06:34:11 +00:00
public function createConfig ( $id_network ){
2021-10-11 00:14:08 +00:00
$this -> db -> insert ( 'nh_networks_configs' , [ 'network_id' => $id_network ]);
2021-10-05 06:34:11 +00:00
return $this -> db -> insert_id ();
}
2021-10-11 00:14:08 +00:00
public function getConfig ( $id_network ){
return $this -> db -> get_where ( 'nh_networks_configs' ,[ 'network_id' => $id_network ]);
}
public function updateConfig ( $configId , $data ){
$this -> db -> where ( 'id' , $configId );
return $this -> db -> update ( 'nh_networks_configs' , $data );
}
public function getConfigYearsPricesGrid ( $configId ){
return $this -> db -> get_where ( 'nh_years_prices_grid' ,[ 'nh_network_config_id' => $configId ]);
}
public function getConfigMonthsPricesGrid ( $configId ){
return $this -> db -> get_where ( 'nh_months_prices_grid' ,[ 'nh_network_config_id' => $configId ]);
}
public function getConfigActs ( $configId ){
return $this -> db -> get_where ( 'nh_acts' ,[ 'nh_network_config_id' => $configId ]);
2021-10-05 06:34:11 +00:00
}
2021-10-14 14:33:02 +00:00
// Classes de prestataires
public function getProviderClasses ( $configId )
2021-02-25 08:41:02 +00:00
{
2021-10-14 14:33:02 +00:00
return $this -> db -> get_where ( 'nh_provider_classes' ,[ 'nh_network_config_id' => $configId ]);
2021-02-25 08:41:02 +00:00
}
2021-10-26 14:37:13 +00:00
public function getInfosInsuranceSubscriptionById ( $insuranceSubscriptionId ){
return $this -> db -> get_where ( 'nh_infos_insurances_subscriptions' ,[ 'insurance_subscription_id' => $insuranceSubscriptionId ]) -> first_row ();
}
2021-11-04 17:01:59 +00:00
public function getNhValidatingAgentSubscriptionHistory ( $agentId , $state ){
return $this -> db -> from ( 'nh_insurances_subscriptions_history' ) -> where ( 'nh_validating_agent_id' , $agentId )
-> where ( 'insurance_subscription_state' , $state ) -> count_all_results ();
}
public function getNhInsurancesSubscriptionCount ( $state ){
return $this -> db -> from ( 'nh_insurances_subscriptions' )
-> where ( 'state' , $state ) -> count_all_results ();
}
2021-11-09 17:35:31 +00:00
public function getInfosInsuredById ( $insuredId ){
return $this -> db -> get_where ( 'nh_infos_insurances' ,[ 'insured_id' => $insuredId ]) -> first_row ();
}
public function getInsurancePaymentTransactions ( $insuredId ){
return $this -> db -> get_where ( 'nh_insurances_payments' ,[ 'insured_id' => $insuredId ]);
}
2021-11-12 05:09:33 +00:00
public function getSubscriptionBeneficiaries ( $subscriptionId ){
return $this -> db -> select ( 'b.*' )
-> from ( 'nh_having_rights b' ) -> join ( 'nh_insurances_having_rights i' , 'b.id = i.having_right_id' )
2022-02-02 16:08:44 +00:00
-> where ( 'i.deleted_at IS NULL' )
2021-11-12 05:09:33 +00:00
-> where ( 'i.insurance_subscription_id' , $subscriptionId ) -> order_by ( 'i.created_at' , 'asc' ) -> get ();
}
public function getInsuranceBeneficiaries ( $insuranceId ){
return $this -> db -> select ( 'b.*' )
-> from ( 'nh_having_rights b' ) -> join ( 'nh_insurances_having_rights i' , 'b.id = i.having_right_id' )
2022-02-02 16:08:44 +00:00
-> where ( 'i.deleted_at IS NULL' )
2021-11-12 05:09:33 +00:00
-> where ( 'i.insurance_id' , $insuranceId ) -> order_by ( 'i.created_at' , 'asc' ) -> get ();
}
2021-11-25 06:58:56 +00:00
public function getInfosHealthCareSheetById ( $healthCareSheetId ){
return $this -> db -> get_where ( 'nh_infos_health_care_sheets' ,[ 'health_care_sheet_id' => $healthCareSheetId ]) -> first_row ();
}
public function getHealthCareSheetPerformances ( $healthCareSheetId ){
return $this -> db -> select ( 'p.* , a.code as act_code , a.name as act_name' )
-> from ( 'nh_performances p' ) -> join ( 'nh_health_care_sheets_performances sp' , 'p.id = sp.performance_id' )
-> join ( 'nh_acts a' , 'a.id = p.act_id' )
-> where ( 'sp.sheet_id' , $healthCareSheetId ) -> order_by ( 'sp.created_at' , 'asc' ) -> get ();
}
public function getHealthCareSheetExams ( $healthCareSheetId ){
return $this -> db -> select ( 'e.* , a.code as act_code , a.name as act_name' )
-> from ( 'nh_exams e' ) -> join ( 'nh_health_care_sheets_exams se' , 'e.id = se.exam_id' )
-> join ( 'nh_acts a' , 'a.id = e.act_id' )
-> where ( 'se.sheet_id' , $healthCareSheetId ) -> order_by ( 'se.created_at' , 'asc' ) -> get ();
}
public function getHealthCareSheetPrescriptions ( $healthCareSheetId ){
return $this -> db -> select ( 'p.* , d.code as drug_or_device_code , d.name as drug_or_device_name' )
-> from ( 'nh_medical_prescriptions p' ) -> join ( 'nh_health_care_sheets_prescriptions sp' , 'p.id = sp.prescription_id' )
-> join ( 'nh_drugs_and_devices d' , 'd.id = p.drug_or_device_id' )
-> where ( 'sp.sheet_id' , $healthCareSheetId ) -> order_by ( 'sp.created_at' , 'asc' ) -> get ();
}
2021-12-28 15:51:25 +00:00
public function getDrugAndDevices ( $networkId )
{
return $this -> db -> get_where ( 'nh_drugs_and_devices' ,[ 'network_id' => $networkId ]);
}
2022-01-31 11:24:35 +00:00
public function calculateSheetAmountsParts ( $healthCareSheetId , $healthCareSheetType ){
$insurerAmount = 0 ;
$insuredAmount = 0 ;
if ( $healthCareSheetType == 'CONSULTATION' ) {
$query = $this -> db -> query ( " SELECT SUM(moderator_ticket) as moderator_ticket , SUM(insurance_amount) as insurance_amount FROM nh_performances p INNER JOIN
nh_health_care_sheets_performances hp ON p . id = hp . performance_id WHERE hp . sheet_id = $healthCareSheetId LIMIT 1 " );
if ( $query -> num_rows () > 0 ) {
$insuredAmount += $query -> first_row () -> moderator_ticket ;
$insurerAmount += $query -> first_row () -> insurance_amount ;
}
} else {
$query = $this -> db -> query ( " SELECT SUM(insured_paid_amount) as insured_paid_amount , SUM(insurer_paid_amount) as insurer_paid_amount FROM nh_medical_prescriptions p INNER JOIN
nh_health_care_sheets_prescriptions hp ON p . id = hp . prescription_id WHERE hp . sheet_id = $healthCareSheetId LIMIT 1 " );
if ( $query -> num_rows () > 0 ) {
$insuredAmount += $query -> first_row () -> insured_paid_amount ;
$insurerAmount += $query -> first_row () -> insurer_paid_amount ;
}
$query = $this -> db -> query ( " SELECT SUM(insured_paid_amount) as insured_paid_amount , SUM(insurer_paid_amount) as insurer_paid_amount FROM nh_exams e INNER JOIN
nh_health_care_sheets_exams he ON e . id = he . exam_id WHERE he . sheet_id = $healthCareSheetId LIMIT 1 " );
if ( $query -> num_rows () > 0 ) {
$insuredAmount += $query -> first_row () -> insured_paid_amount ;
$insurerAmount += $query -> first_row () -> insurer_paid_amount ;
}
}
return [ $insuredAmount , $insurerAmount ];
}
2022-02-01 10:58:25 +00:00
public function getCountCareRequests ( $network_id , $validating_agent_id , $state ){
$query = $this -> db -> from ( 'nh_infos_authorization_of_care_requests' ) -> where ( 'state' , $state );
if ( ! empty ( $validating_agent_id )){
$query = $query -> where ( 'validating_agent_id' , $validating_agent_id );
}
if ( ! empty ( $network_id )){
$query = $query -> where ( 'network_id' , $network_id );
}
return $query -> count_all_results ();
}
2022-02-04 16:52:51 +00:00
public function getBeneficiariesDeletionHistory ( $insuranceId ){
return $this -> db -> select ( 'b.* , i.deleted_at' )
-> from ( 'nh_having_rights b' ) -> join ( 'nh_insurances_having_rights i' , 'b.id = i.having_right_id' )
-> where ( 'i.deleted_at IS NOT NULL' )
-> where ( 'i.insurance_id' , $insuranceId ) -> order_by ( 'i.deleted_at' , 'desc' ) -> get ();
}
2021-02-25 08:41:02 +00:00
}