4318 lines
210 KiB
PHP
Executable File
4318 lines
210 KiB
PHP
Executable File
<?php
|
|
|
|
if (!defined('BASEPATH'))
|
|
exit('No direct script access allowed');
|
|
|
|
class Caregiver_model extends CI_model {
|
|
|
|
function __construct() {
|
|
parent::__construct();
|
|
$this->load->database();
|
|
|
|
}
|
|
function checkEmail($email){
|
|
$result=$this->db->get_where('users', array('email' => $email))->row();
|
|
if($result){
|
|
return false;
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
function checkEmail2($email){
|
|
$result=$this->db->get_where('users', array('email' => $email))->row();
|
|
if(count($result) > 0){
|
|
return false;
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
function check_nurse_email_avl($cgid=0,$email=""){
|
|
try{
|
|
if($email!=""){
|
|
$row=$this->db->get_where('caregiver', array('id'=>$cgid))->row();
|
|
$nurse_email=$row->email;
|
|
$nurse_ion_user_email=$this->db->get_where('users',array('id'=>$row->ion_user_id))->row()->email;
|
|
if($email==$nurse_email || $email==$nurse_ion_user_email){
|
|
return true;
|
|
}else{
|
|
$rec1=$this->db->get_where('caregiver',array('email'=>$email));
|
|
$rec2=$this->db->get_where('users',array('email'=>$email));
|
|
return ($rec1->num_rows()>0 || $rec2->num_rows()>0)?false:true;
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - check_nurse_email_avl: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function update_nurse_ion_user_email($cgid=0,$email=""){
|
|
try{
|
|
if($cgid>0 && $email!=""){
|
|
$check=$this->check_nurse_email_avl($cgid,$email);
|
|
if($check){
|
|
$this->db->where('id',$cgid);
|
|
$this->db->update('caregiver', ['email'=>$email]);
|
|
$row=$this->db->get_where('caregiver',array('email'=>$email))->row();
|
|
$ion_user_id=$row->ion_user_id;
|
|
if($ion_user_id>0){
|
|
$this->db->where('id',$ion_user_id);
|
|
$this->db->update('users', ['email'=>$email]);
|
|
}
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - update_nurse_ion_user_email: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function getNameIdById($id){
|
|
$result=$this->db->get_where('caregiver', array('id' => $id))->row();
|
|
$data['name']=$result->fname.' '.$result->mid_name.' '.$result->lname;
|
|
$data['caregiver_id']=$result->caregiver_id;
|
|
$data['ion_user_id']=$result->ion_user_id;
|
|
return $data;
|
|
}
|
|
function insertNurse($data,$data2=null,$data3=null) {
|
|
$this->db->insert('caregiver', $data);
|
|
//echo $this->db->last_query();die;
|
|
$caregiver_id = $this->db->insert_id();
|
|
|
|
$data2['caregiver_table_id'] = $caregiver_id;
|
|
$this->db->insert('caregiver_step2', $data2);
|
|
|
|
$data3['caregiver_table_id'] = $caregiver_id;
|
|
// $data3['employee_type'] = $data['employee_type'];
|
|
$this->db->insert('caregiver_step3', $data3);
|
|
|
|
return $this->db->insert_id();
|
|
}
|
|
function updateCaregiverVerification($post){
|
|
unset($post['submit']);
|
|
|
|
// echo '<pre>'; print_r($post); echo '</pre>'; exit;
|
|
// $verified_tab['tab1']=''
|
|
// $post['verified_tab']=json_encode($verified_tab);
|
|
// $this->Caregiver_model->updateCaregiverVerification($post);
|
|
|
|
$this->db->where('caregiver_id', $post['caregiver_id']);
|
|
$query = $this->db->get('caregiver_verification')->row();
|
|
|
|
|
|
if($query){
|
|
if($query->verified_tab==''){
|
|
$verified_tab=json_decode($query->verified_tab);
|
|
$verified_tab['tab1']=1;
|
|
$verified_tab['tab2']=0;
|
|
$verified_tab['tab3']=0;
|
|
$verified_tab['tab4']=0;
|
|
$post['verified_tab']=json_encode($verified_tab);
|
|
}
|
|
//echo '<pre>'; print_r($post); echo '</pre>'; die;
|
|
$this->db->where('caregiver_id', $post['caregiver_id']);
|
|
$this->db->update('caregiver_verification', $post);
|
|
}else{
|
|
$verified_tab['tab1']=1;
|
|
$verified_tab['tab2']=0;
|
|
$verified_tab['tab3']=0;
|
|
$verified_tab['tab4']=0;
|
|
$post['verified_tab']=json_encode($verified_tab);
|
|
$this->db->insert('caregiver_verification', $post);
|
|
}
|
|
//echo $this->db->last_query();die;
|
|
}
|
|
function getNurseByEmail($email) {
|
|
$this->db->where('email', $email);
|
|
$query = $this->db->get('caregiver')->row();
|
|
return $query;
|
|
}
|
|
|
|
function caregiver_verification($id) {
|
|
$this->db->where('caregiver_id', $id);
|
|
$query = $this->db->get('caregiver_verification')->row();
|
|
return $query;
|
|
}
|
|
function getNurse() {
|
|
$query = $this->db->get('caregiver');
|
|
return $query->result();
|
|
}
|
|
|
|
|
|
|
|
function name_list(){
|
|
$this->db->order_by('id', 'DESC');
|
|
$query = $this->db->get('onboardvideo');
|
|
return $query->result();
|
|
}
|
|
function getSendApprovalList($limit, $start, $orderColumn, $orderType, $search="") {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('qualification_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('fname', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('email', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('phone', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
}
|
|
|
|
$this->db->where('submited_for_verification', 'yes');
|
|
$this->db->where('verification_status !=','verified');
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('caregiver');
|
|
return $query->result();
|
|
}
|
|
function getSendApprovalListCount($limit, $start, $orderColumn, $orderType, $search="") {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('qualification_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('fname', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('email', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('phone', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
}
|
|
|
|
$this->db->where('submited_for_verification', 'yes');
|
|
$this->db->where('verification_status !=','verified');
|
|
$query = $this->db->get('caregiver');
|
|
return $query->result();
|
|
}
|
|
function getNurseBysearch($search) {
|
|
$this->db->order_by('id', 'desc');
|
|
$this->db->like('id', $search);
|
|
$this->db->or_like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
$query = $this->db->get('caregiver');
|
|
return $query->result();
|
|
}
|
|
|
|
function getNurseById($id) {
|
|
$this->db->select('a1.*,a2.*,a3.*,a4.name as skill_name');
|
|
//$this->db->select("caregiver.id as id");
|
|
$this->db->from('caregiver a1');
|
|
$this->db->join('caregiver_step2 a2', 'a1.id = a2.caregiver_table_id', 'left');
|
|
$this->db->join('caregiver_step3 a3', 'a1.id = a3.caregiver_table_id', 'left');
|
|
$this->db->join('master_cg_skills a4', 'a1.qualification_type = a4.id', 'left');
|
|
$this->db->where('a1.id', $id);
|
|
$query = $this->db->get();
|
|
//echo $this->db->get_compiled_select(); die;
|
|
return $query->row();
|
|
|
|
// $this->db->where('id', $id);
|
|
// $query = $this->db->get('caregiver');
|
|
// return $query->row();
|
|
|
|
}
|
|
|
|
function getNurseByLimitBySearch($limit, $start, $orderColumn, $orderType, $search="", $searchIn="") {
|
|
// print_r($searchIn);die;
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('qualification_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('fname', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('email', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('phone', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->group_start();
|
|
$this->db->like('id', $search);
|
|
$this->db->or_like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
if(isset($searchIn) && $searchIn!='')
|
|
{
|
|
if($searchIn == 'pendingApplication'){
|
|
$this->db->where('progress <=','100');
|
|
$this->db->where('submited_for_verification','no');
|
|
}else if($searchIn == 'pendingAcceptance'){
|
|
$this->db->where('submited_for_verification','yes');
|
|
}
|
|
}
|
|
if($searchIn=='')
|
|
{
|
|
$this->db->where('verification_status','verified');
|
|
$this->db->where('status','1');
|
|
}
|
|
$this->db->limit($limit, $start);
|
|
$this->db->order_by('id', "DESC");
|
|
$query = $this->db->get('caregiver');
|
|
// echo $this->db->last_query();
|
|
return $query->result();
|
|
}
|
|
function getNurseByLimitBySearchCount($limit, $start, $orderColumn, $orderType, $search="", $searchIn="") {
|
|
// print_r($searchIn);die;
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('qualification_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('fname', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('email', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('phone', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->group_start();
|
|
$this->db->like('id', $search);
|
|
$this->db->or_like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
if(isset($searchIn) && $searchIn!='')
|
|
{
|
|
if($searchIn == 'pendingApplication'){
|
|
$this->db->where('progress <=','100');
|
|
$this->db->where('submited_for_verification','no');
|
|
}else if($searchIn == 'pendingAcceptance'){
|
|
$this->db->where('submited_for_verification','yes');
|
|
}
|
|
}
|
|
if($searchIn=='')
|
|
{
|
|
$this->db->where('verification_status','verified');
|
|
$this->db->where('status','1');
|
|
}
|
|
$this->db->order_by('id', "DESC");
|
|
$query = $this->db->get('caregiver');
|
|
// echo $this->db->last_query();
|
|
return $query->result();
|
|
}
|
|
/*deprecated
|
|
function getNurseByLimitBySearch($limit, $start, $orderColumn, $orderType, $search) {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('fname', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('email', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('phone', $orderType);
|
|
|
|
$this->db->like('id', $search);
|
|
$this->db->or_like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('caregiver');
|
|
|
|
return $query->result();
|
|
}*/
|
|
|
|
function getNurseSkill($id) {
|
|
$this->db->select("caregiver.*");
|
|
$this->db->select("master_cg_skills.name as skill_name");
|
|
$this->db->from("caregiver");
|
|
$this->db->join("master_cg_skills", "caregiver.qualification_type = master_cg_skills.id");
|
|
$this->db->where('caregiver.id', $id);
|
|
//echo $this->db->get_compiled_select(); die;
|
|
$query = $this->db->get();
|
|
|
|
//echo '<pre>'; print_r($query); echo '</pre>'; exit;
|
|
return $query->row();
|
|
}
|
|
function getSkillNameByid($id){
|
|
$this->db->where('id', $id);
|
|
$this->db->where('status!=', 0);
|
|
$query=$this->db->get('master_cg_skills')->row();
|
|
return $query->name;
|
|
}
|
|
function getTimeSlotById($id){
|
|
$this->db->where('id', $id);
|
|
$this->db->where('status!=', 0);
|
|
return $query=$this->db->get('master_timeslot_type')->row();
|
|
}
|
|
|
|
// by naran on 16-09-2021.............
|
|
function getOnboardQuizStatus($id){
|
|
$this->db->where('ion_user_id',$id);
|
|
$quary1=$this->db->get('caregiver')->row();
|
|
$cg_id=$quary1->id;
|
|
$this->db->select("*");
|
|
$this->db->from('quizexamresult');
|
|
$this->db->where('user_id',$cg_id);
|
|
$rows=$this->db->get()->num_rows();
|
|
|
|
$this->db->where('user_id',$cg_id);
|
|
$quary2=$this->db->get('caregiver_onboard_registration_token')->row();
|
|
$video_ids=json_decode($quary2->videos);
|
|
$token=$quary2->token;
|
|
|
|
if($rows>0){
|
|
$length=count($video_ids);
|
|
$a=array();
|
|
for($i=0;$i<$length;$i++){
|
|
$vid=$video_ids[$i]->id;
|
|
$this->db->select("*");
|
|
$this->db->from('quizexamresult');
|
|
$this->db->where('user_id',$cg_id);
|
|
$this->db->where('video_id',$vid);
|
|
$rows=$this->db->get()->num_rows();
|
|
if($rows>0){
|
|
$a['status']=1;
|
|
continue;
|
|
}else{
|
|
$a['status']=0;
|
|
break;
|
|
}
|
|
}
|
|
$a['token']=$token;
|
|
return $a;
|
|
}else{
|
|
$a['status']=0;
|
|
$a['token']=$token;
|
|
return $a;
|
|
}
|
|
|
|
}
|
|
//end by naran on 16-09-2021.............
|
|
|
|
function getNurseByIonId($id) {
|
|
$this->db->select('*');
|
|
//$this->db->select("caregiver.id as id");
|
|
$this->db->from('caregiver a1');
|
|
$this->db->join('caregiver_step2 a2', 'a1.id = a2.caregiver_table_id', 'left');
|
|
$this->db->join('caregiver_step3 a3', 'a1.id = a3.caregiver_table_id', 'left');
|
|
$this->db->where('a1.ion_user_id', $id);
|
|
$query = $this->db->get();
|
|
|
|
// return $query->row();
|
|
// $this->db->where('ion_user_id', $id);
|
|
// $query = $this->db->get('caregiver');
|
|
//echo '<pre>'; print_r($query); echo '</pre>'; exit;
|
|
return $query->row();
|
|
}
|
|
function email_check($email) {
|
|
//echo $email;die;
|
|
$this->db->where('email', $email);
|
|
$query = $this->db->get('caregiver')->row();
|
|
if($query)
|
|
return 1;
|
|
else
|
|
return 0;
|
|
}
|
|
function update_email_check($email,$ionid) {
|
|
//echo $email;die;
|
|
$this->db->where('email', $email)->where('id!=',$ionid);
|
|
$query = $this->db->get('users')->row();
|
|
//echo $this->db->last_query();
|
|
// print_r($query);
|
|
//die;
|
|
if($query)
|
|
return 1;
|
|
else
|
|
return 0;
|
|
}
|
|
function updateIonUser($email,$password,$id,$ionid){
|
|
$update_ion_user = array(
|
|
'email' => $email,
|
|
'password' => $password
|
|
);
|
|
$this->db->where('id', $ionid);
|
|
$this->db->update('users', $update_ion_user);
|
|
$update_caregiver = array(
|
|
'email' => $email
|
|
);
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver', $update_caregiver);
|
|
}
|
|
function updateNurse($id,$data,$data2=null,$data3=null) {
|
|
// pre($data);
|
|
// die;
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver', $data);
|
|
// echo $this->db->last_query();die;
|
|
if($data2){
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->update('caregiver_step2', $data2);
|
|
}
|
|
//echo $this->db->last_query();die;
|
|
if($data3){
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->update('caregiver_step3', $data3);
|
|
}
|
|
//echo $this->db->last_query();die;
|
|
return $this->db->affected_rows();
|
|
|
|
// die;
|
|
}
|
|
function updateService($id, $data) {
|
|
//echo '<pre>'; print_r($skill); echo '</pre>'; die;
|
|
$this->db->where('caregiver_id', $id);
|
|
$this->db->delete('caregiver_service_mapping');
|
|
|
|
foreach($data as $ser){
|
|
$serarr=array(
|
|
'caregiver_id'=>$id,
|
|
'service_id'=>$ser,
|
|
// 'skill_id'=>$skill['qualification_type']
|
|
);
|
|
|
|
$this->db->insert('caregiver_service_mapping', $serarr);
|
|
}
|
|
return true;
|
|
}
|
|
function caregiversExperience($id, $data) {
|
|
//echo '<pre>'; print_r($data); echo '</pre>'; echo $id; die;
|
|
$this->db->reset_query();
|
|
$this->db->delete('caregiver_experience');
|
|
$this->db->delete('caregiver_experience', array('caregiver_id' => $id));
|
|
//echo $this->db->last_query();die;
|
|
foreach($data['exp_label'] as $key=>$exp){
|
|
$group=$this->db->get_where('master_cg_service', array('id' => $key))->row();
|
|
$experience=array(
|
|
'caregiver_id'=>$id,
|
|
'experience_id'=>$key,
|
|
'group_id'=>$group->service_head_id,
|
|
'experience_value'=>$exp
|
|
);
|
|
$experience['skill_id']=$data['qualification_type'];
|
|
$this->db->insert('caregiver_experience', $experience);
|
|
}
|
|
return true;
|
|
}
|
|
function get_caregiver_experience($id=NULL){
|
|
$query=$this->db->get_where('caregiver_experience', array('caregiver_id' =>$id));
|
|
return $query->result();
|
|
}
|
|
function CheckAvailability($data){
|
|
$start=$data['scheduleDate'].' '.$data['startTime'];
|
|
$end=$data['scheduleDate'].' '.$data['endTime'];
|
|
$caregiver_id=$data['caregiver_id'];
|
|
|
|
$sql="SELECT * FROM caregiver_availability";
|
|
$sql.=" where status='1' and caregiver_id='".$caregiver_id."'";
|
|
$sql.=" and ( ('".$start."' between start and end)
|
|
and
|
|
('".$end."' between start and end)
|
|
|
|
)";
|
|
$result=$this->db->query($sql)->result();
|
|
$output='';
|
|
if(!empty($result)){
|
|
$output='Already in Availability List.';
|
|
}
|
|
//echo $this->db->last_query();
|
|
//return json_encode($result);
|
|
return $output;
|
|
//print_r($data);
|
|
}
|
|
function get_state_nameByid($id){
|
|
$query=$this->db->get_where('master_statelist', array('id' => $id))->row();
|
|
return $query->name;
|
|
}
|
|
function get_state_list(){
|
|
$query=$this->db->get_where('master_statelist', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_city_list(){
|
|
$query=$this->db->get_where('master_city', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_language_list(){
|
|
$query=$this->db->get_where('master_language', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_country_list(){
|
|
$query=$this->db->get_where('master_country', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_time_slot_list(){
|
|
$query=$this->db->get_where('master_timeslot_type', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_time_slot_Byid($id){
|
|
$query=$this->db->get_where('master_timeslot_type', array('id' => $id))->row();
|
|
return $query->name;
|
|
}
|
|
function get_ref_src_list(){
|
|
$query=$this->db->get_where('master_cg_referal_source', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_ref_src_Byid($id){
|
|
$query=$this->db->get_where('master_cg_referal_source', array('id' => $id))->row();
|
|
return $query->name;
|
|
}
|
|
function get_relation(){
|
|
$this->db->order_by('name', 'ASC');
|
|
$query=$this->db->get_where('master_relations', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_reason_for_leaving(){
|
|
$query=$this->db->get_where('master_reason_for_leaving', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_service_list($id = NULL){
|
|
|
|
if($id){
|
|
$getSkill=$this->db->get_where('caregiver', array('id' => $id))->row();
|
|
}
|
|
$heads = $this->db->get_where('master_service_head',array('skill_id'=>$getSkill->qualification_type))->result();
|
|
$head_count=0;
|
|
foreach($heads as $head){
|
|
$subHeads = $this->db->get_where('master_cg_service',array('service_head_id'=>$head->id))->result();
|
|
$sub_head_count=0;
|
|
$accessableChildren = array();
|
|
|
|
foreach($subHeads as $subHead){
|
|
$children = $this->db->get_where('master_cg_service',array('parent_id'=>$subHead->id))->result();
|
|
$child_count=0;
|
|
$accessableChildren[$sub_head_count]['ID'] = $subHead->id;
|
|
$accessableChildren[$sub_head_count]['NAME'] = $subHead->service_name;
|
|
$accessableChildren[$sub_head_count]['PARENT_ID'] = $subHead->parent_id;
|
|
$accessableChildren2 = array();
|
|
foreach( $children as $child){
|
|
$accessableChildren2[$child_count]['ID'] = $child->id;
|
|
$accessableChildren2[$child_count]['NAME'] = $child->service_name;
|
|
$accessableChildren2[$child_count]['PARENT_ID'] = $child->parent_id;
|
|
// $output[$head_count]['subHead'][$sub_head_count]['child'][$child_count] = $child->service_name;
|
|
$child_count++;
|
|
}
|
|
$accessableChildren[$sub_head_count]['CHILDREN'] = $accessableChildren2;
|
|
//$output[$head_count]['subHead'][$sub_head_count] = $subHead->service_name;
|
|
$sub_head_count++;
|
|
}
|
|
|
|
$outputs[$head_count]['NAME'] = $head->service_head_name;
|
|
$outputs[$head_count]['ID'] = $head->id;
|
|
$outputs[$head_count]['CHILDREN'] = $accessableChildren;
|
|
$head_count++;
|
|
}
|
|
|
|
//}
|
|
return $outputs;
|
|
}
|
|
|
|
function get_cg_service_list(){
|
|
$query=$this->db->get_where('master_cg_service', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_CaregiverService_listById($id){
|
|
$query=$this->db->get_where('caregiver_service_mapping', array('caregiver_id' => $id))->result();
|
|
// echo '<pre>'; print_r($query); echo '</pre>'; exit;
|
|
return $query;
|
|
}
|
|
function caregiver_skill_list(){
|
|
$this->db->where('status','1');
|
|
$this->db->order_by('list_order', 'ASC');
|
|
$query = $this->db->get('master_cg_skills');
|
|
return $query->result();
|
|
}
|
|
function get_ethnicity_list(){
|
|
$query=$this->db->get_where('master_ethnicity', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_eyeColors(){
|
|
$query=$this->db->get_where('master_eye_color', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
|
|
function get_hairColors(){
|
|
$query=$this->db->get_where('master_hair_color', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function get_SchoolList(){
|
|
$query=$this->db->get_where('master_schools', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
function caregiver_skill_NameByid($id){
|
|
$query=$this->db->get_where('master_cg_skills', array('id' => $id))->row();
|
|
return $query->name;
|
|
}
|
|
function getProgress(){
|
|
$id = $this->session->userdata('user_id');
|
|
$query=$this->db->get_where('caregiver', array('ion_user_id' => $id))->row();
|
|
return $query->progress;
|
|
// print_r($query->progress);
|
|
// die;
|
|
}
|
|
function addVerificationHistory($data){
|
|
$this->db->insert('caregiver_verification_history', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
function addVerificationHistoryDetails($data){
|
|
$this->db->insert('caregiver_verification_history_details', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
function delete($id) {
|
|
$this->db->where('id', $id);
|
|
$this->db->delete('caregiver');
|
|
}
|
|
function addNurseDocuments($data){
|
|
$this->db->insert('users_documents', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
function filePathExistCheck($documentId,$ionid,$id){
|
|
$this->db->select('path,file_name')->where('ion_user_id', $ionid)->where('id', $documentId)->where('userid', $id)->where('status', 1);
|
|
$query = $this->db->get('users_documents');
|
|
return $query->row();
|
|
}
|
|
function getfilePathFromPrvs($doc_type,$ionid,$id){
|
|
$this->db->select('path,file_name,originalfilename')->where('ion_user_id', $ionid)->where('documents_type', $doc_type)->where('userid', $id)->where('status',0);
|
|
$query = $this->db->get('users_documents');
|
|
return $query->row();
|
|
}
|
|
|
|
function updateNurseDocuments($data,$id){
|
|
$this->db->where('id', $id);
|
|
$this->db->update('users_documents', $data);
|
|
}
|
|
function upsertDocuments($data){
|
|
$this->db->where('ion_user_id', $data['ion_user_id']);
|
|
$this->db->where('documents_type', $data['documents_type']);
|
|
$this->db->where('status', 1);
|
|
$this->db->update('users_documents',array('status'=>0));
|
|
// $test=$this->db->last_query();
|
|
// pre($test);die;
|
|
$this->db->insert('users_documents', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
|
|
function checkDocumentsExsist($ionid,$doc_type){
|
|
$this->db->where('ion_user_id', $ionid)->where('user_type', 'Caregiver')->where('documents_type', $doc_type)->where('status', 1);
|
|
$query = $this->db->get('users_documents')->row();
|
|
if($query)
|
|
return 1;
|
|
else
|
|
return 0;
|
|
}
|
|
function CargiverDocumentsUploaded($ionid){
|
|
$this->db->select('documents_type');
|
|
$this->db->where('ion_user_id', $ionid);
|
|
$this->db->where('user_type', 'Caregiver');
|
|
$this->db->where('status', 1);
|
|
$query = $this->db->get('users_documents')->result();
|
|
foreach ($query as $q) {
|
|
$output[]=$q->documents_type;
|
|
}
|
|
$this->db->select('b.Personal_References_Name,b.PPD_Quantiferonon');
|
|
$this->db->from('caregiver a');
|
|
$this->db->join('caregiver_step3 b', 'b.caregiver_table_id = a.id', 'left');
|
|
$this->db->where('a.ion_user_id',$ionid);
|
|
$query = $this->db->get()->row();
|
|
if($query->Personal_References_Name){
|
|
array_push($output, 'REF');
|
|
}
|
|
if($query->PPD_Quantiferonon){
|
|
array_push($output, 'PPD');
|
|
}
|
|
//return $this->db->last_query();
|
|
//return $query;
|
|
return $output;
|
|
}
|
|
function getNurseDocuments($ionid){
|
|
$this->db->where('ion_user_id', $ionid)->where('user_type', 'Caregiver')->where('status', 1);
|
|
$query = $this->db->get('users_documents');
|
|
// print_r($query);die;
|
|
return $query->result();
|
|
}
|
|
function deleteNursePreDocuments($doc_id){
|
|
|
|
$this->db->where('id', $doc_id);
|
|
$this->db->update('users_documents', array('status'=>0));
|
|
}
|
|
function update_cpr_certificateDates($caregiver_table_id,$data1,$cpr_type){
|
|
$this->db->where('userid',$caregiver_table_id);
|
|
$this->db->where('documents_type', $cpr_type);
|
|
$this->db->where('status',1);
|
|
$this->db->update('users_documents',$data1);
|
|
}
|
|
|
|
function getCaregiverPatient($id){
|
|
$this->db->distinct('a.patient_id');
|
|
$this->db->select('a.*,b.*');
|
|
$this->db->from('caregiver_schedule a');
|
|
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
|
|
$this->db->group_by('a.patient_id');
|
|
$this->db->where('a.caregiver_id',$id);
|
|
$query = $this->db->get()->result();
|
|
return $query;
|
|
}
|
|
function getPreviousCaregiverPatientSchedule($id){
|
|
$now=date("Y-m-d 00:00:00");
|
|
// $this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*');
|
|
$this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*, c.status as clock_in_out_status, c.clock_status, c.clock_in_time, c.clock_out_time');
|
|
$this->db->from('caregiver_schedule a');
|
|
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
|
|
$this->db->join('caregiver_patient_clock_in_out c', 'c.schedule_id = a.id', 'left');
|
|
|
|
$this->db->where('a.start<',$now);
|
|
$this->db->where("`a`.`caregiver_id`=$id AND `a`.`acceptance_status`!='Declined' ORDER BY FIELD(a.acceptance_status, 'Unconfirmed','Accepted','Declined') ASC");
|
|
$query = $this->db->get()->result();
|
|
return $query;
|
|
}
|
|
function getUpcommingCaregiverPatientSchedule($id){
|
|
$now=date("Y-m-d 00:00:00");
|
|
// $this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*');
|
|
$this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*, c.status as clock_in_out_status, c.clock_status, c.clock_in_time, c.clock_out_time');
|
|
$this->db->from('caregiver_schedule a');
|
|
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
|
|
$this->db->join('caregiver_patient_clock_in_out c', 'c.schedule_id = a.id', 'left');
|
|
|
|
$this->db->where('a.start>',$now);
|
|
$this->db->where("`a`.`caregiver_id`=$id AND `a`.`acceptance_status`!='Declined' ORDER BY FIELD(a.acceptance_status, 'Unconfirmed','Accepted','Declined') ASC");
|
|
$query = $this->db->get()->result();
|
|
return $query;
|
|
}
|
|
function masterScheduleList(){
|
|
$this->db->where('status','1');
|
|
$query = $this->db->get('master_schedule')->result();
|
|
return $query;
|
|
}
|
|
function masterScheduleWeekdayList(){
|
|
$this->db->where('status','1');
|
|
$this->db->group_by('week_day');
|
|
$query = $this->db->get('master_schedule')->result();
|
|
return $query;
|
|
}
|
|
function getTimeByDay($day){
|
|
$this->db->where('week_day', $day)->where('status','1');
|
|
$query = $this->db->get('master_schedule')->result();
|
|
return $query;
|
|
}
|
|
function saveCaregiverSchedule($data){
|
|
$this->db->insert('caregiver_schedule', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
function getCaregiverSchedule($id){
|
|
$this->db->where('caregiver_id', $id)->where('status','1');
|
|
$query = $this->db->get('caregiver_schedule')->result();
|
|
return $query;
|
|
}
|
|
|
|
function getCaregiverEventSchedule($id){
|
|
$this->db->where('status','1');
|
|
$this->db->where('caregiver_id',$id);
|
|
$query = $this->db->get('caregiver_schedule')->result();
|
|
return $query;
|
|
}
|
|
function updateCaregiverEventSchedule($data,$id){
|
|
$this->db->where('id', $id);
|
|
$query=$this->db->update('caregiver_schedule', $data);
|
|
return $this->db->affected_rows();
|
|
}
|
|
function deleteCaregiverEventSchedule($id){
|
|
$this->db->where('id', $id);
|
|
$query=$this->db->update('caregiver_schedule', array('status'=>'0'));
|
|
return $this->db->affected_rows();
|
|
}
|
|
function deleteSchedule($scheduleId,$caregiverId,$update_by){
|
|
$update_on=date ('Y-m-d H:i:s', now());
|
|
$data=array(
|
|
'update_by'=>$update_by,
|
|
'update_on'=>$update_on,
|
|
'status'=>'0',
|
|
);
|
|
|
|
$this->db->where('caregiver_id', $caregiverId)->where('schedule_master_id', $scheduleId)->where('status', '1');
|
|
$query=$this->db->update('caregiver_schedule', $data);
|
|
return $this->db->affected_rows();
|
|
}
|
|
|
|
function getCountryIdByName($name) {
|
|
$this->db->select("id");
|
|
$this->db->from("master_country");
|
|
$this->db->where('name', $name);
|
|
$this->db->where('status',1);
|
|
$query = $this->db->get();
|
|
return $query->row();
|
|
}
|
|
function getEthnicityIdByName($name) {
|
|
$this->db->select("id");
|
|
$this->db->from("master_ethnicity");
|
|
$this->db->where('name', $name);
|
|
$this->db->where('status',1);
|
|
$query = $this->db->get();
|
|
return $query->row();
|
|
}
|
|
|
|
function updateAcceptance($post)
|
|
{
|
|
$scheduleId = $post["scheduleId"];
|
|
$decision = $post["decision"];
|
|
$rejection_reason = $post["rejectionReason"];
|
|
|
|
$this->db->where('id', $scheduleId);
|
|
$query=$this->db->update('caregiver_schedule',
|
|
array(
|
|
'acceptance_status'=>$decision,
|
|
'rejection_reason' =>$rejection_reason
|
|
)
|
|
);
|
|
return $this->db->affected_rows();
|
|
}
|
|
|
|
function getScheduleByLimitBySearch($limit, $start, $search, $orderColumn, $orderType, $caregiverId) {
|
|
|
|
if($orderColumn==0)
|
|
$this->db->order_by('patient_id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('start', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('start', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('end', $orderType);
|
|
|
|
$this->db->like('patient_id', $search);
|
|
$this->db->or_like('start', $search);
|
|
$this->db->or_like('end', $search);
|
|
$this->db->where('caregiver_id',$caregiverId);
|
|
$this->db->where('status','1');
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('caregiver_schedule');
|
|
return $query->result();
|
|
}
|
|
function getScheduleByLimit($limit, $start, $orderColumn, $orderType, $caregiverId) {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('patient_id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('start', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('start', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('end', $orderType);
|
|
$this->db->where('caregiver_id',$caregiverId);
|
|
$this->db->where('status','1');
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('caregiver_schedule')->result();
|
|
return $query;
|
|
}
|
|
function saveAvailability($data){
|
|
$created_by=$this->session->userdata('user_id');
|
|
$created_on=date ('Y-m-d H:i:s', now());
|
|
$data['color']='#2D95BF';
|
|
$data['start']=$data['Sdate'].' '.$data['startTime'];
|
|
$data['end']=$data['Sdate'].' '.$data['endTime'];
|
|
$data['caregiver_id']=$data['caregiver_id'];
|
|
$data['created_by']=$created_by;
|
|
$data['created_on']=$created_on;
|
|
$data['status']=1;
|
|
unset($data['startTime']);
|
|
unset($data['endTime']);
|
|
unset($data['Sdate']);
|
|
//print_r($data);die;
|
|
$this->db->insert('caregiver_availability', $data);
|
|
$insertId=$this->db->insert_id();
|
|
if($insertId>0){ return true; }else{ return false; }
|
|
}
|
|
function caregiverScheduleById($caregiverId){
|
|
$now=date("Y-m-d 00:00:00");
|
|
$this->db->select('a.*,b.first_name,b.last_name');
|
|
$this->db->from('caregiver_schedule a');
|
|
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
|
|
$this->db->where('a.caregiver_id',$caregiverId);
|
|
$this->db->where('a.start>',$now);
|
|
$this->db->where('status','1');
|
|
$this->db->order_by('a.start', 'asc');
|
|
$query = $this->db->get()->result();
|
|
//echo $this->db->last_query();die;
|
|
return $query;
|
|
}
|
|
function availableScheduleById($caregiverId){
|
|
$now=date("Y-m-d H:i:s");
|
|
$this->db->where('caregiver_id',$caregiverId);
|
|
$this->db->where('start>',$now);
|
|
$this->db->where('status','1');
|
|
$this->db->order_by('start', 'asc');
|
|
$query = $this->db->get('caregiver_availability')->result();
|
|
//echo $this->db->last_query();die;
|
|
return $query;
|
|
}
|
|
function previousScheduleById($caregiverId){
|
|
$now=date("Y-m-d 00:00:00");
|
|
$this->db->select('a.*,b.first_name,b.last_name');
|
|
$this->db->from('caregiver_schedule a');
|
|
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
|
|
$this->db->where('a.caregiver_id',$caregiverId);
|
|
$this->db->where('a.start<',$now);
|
|
$this->db->where('status','1');
|
|
$this->db->order_by('a.start', 'asc');
|
|
$query = $this->db->get()->result();
|
|
return $query;
|
|
}
|
|
public function getServices(){
|
|
|
|
$skillId=$_GET['skillId'];
|
|
$heads = $this->db->get_where('master_service_head',array('skill_id'=>$skillId))->result();
|
|
$head_count=0;
|
|
foreach($heads as $head){
|
|
$subHeads = $this->db->get_where('master_cg_service',array('service_head_id'=>$head->id))->result();
|
|
$sub_head_count=0;
|
|
$accessableChildren = array();
|
|
|
|
foreach($subHeads as $subHead){
|
|
$children = $this->db->get_where('master_cg_service',array('parent_id'=>$subHead->id))->result();
|
|
$child_count=0;
|
|
$accessableChildren[$sub_head_count]['ID'] = $subHead->id;
|
|
$accessableChildren[$sub_head_count]['NAME'] = $subHead->service_name;
|
|
$accessableChildren[$sub_head_count]['PARENT_ID'] = $subHead->parent_id;
|
|
$accessableChildren2 = array();
|
|
foreach( $children as $child){
|
|
$accessableChildren2[$child_count]['ID'] = $child->id;
|
|
$accessableChildren2[$child_count]['NAME'] = $child->service_name;
|
|
$accessableChildren2[$child_count]['PARENT_ID'] = $child->parent_id;
|
|
// $output[$head_count]['subHead'][$sub_head_count]['child'][$child_count] = $child->service_name;
|
|
$child_count++;
|
|
}
|
|
$accessableChildren[$sub_head_count]['CHILDREN'] = $accessableChildren2;
|
|
//$output[$head_count]['subHead'][$sub_head_count] = $subHead->service_name;
|
|
$sub_head_count++;
|
|
}
|
|
|
|
$outputs[$head_count]['NAME'] = $head->service_head_name;
|
|
$outputs[$head_count]['ID'] = $head->id;
|
|
$outputs[$head_count]['CHILDREN'] = $accessableChildren;
|
|
$head_count++;
|
|
}
|
|
// echo '<pre>'; print_r($outputs); echo '</pre>';
|
|
//die;
|
|
// foreach ($outputs as $val) {
|
|
// echo count($val['CHILDREN']);
|
|
// }
|
|
|
|
//die;
|
|
$output='';
|
|
//if($service_count>0){
|
|
$output.='
|
|
<label for="exampleInputEmail1" class="required-field">List of Service</label>
|
|
<select name="service[]" id="listOfService" class="form-control multiselect-class" multiple required data-error="Please select a service." style="width:100%">
|
|
';
|
|
foreach ($outputs as $val) {
|
|
if(count($val['CHILDREN']) > 0){
|
|
$output.='<optgroup label="'.$val['NAME'].'">';
|
|
foreach($val['CHILDREN'] as $child){
|
|
if(count($child['CHILDREN']) > 0){
|
|
$output.='<optgroup label="'.$child['NAME'].'">';
|
|
$output.='</optgroup>';
|
|
foreach($child['CHILDREN'] as $subChild){
|
|
$output.='<option value="'.$subChild['ID'].'" >'
|
|
.$subChild['NAME'].'</option>';
|
|
}
|
|
}
|
|
else if($child['PARENT_ID'] == 0){
|
|
$output.='<option value="'.$child['ID'].'" >'
|
|
.$child['NAME'].'</option>';
|
|
}
|
|
}
|
|
} else if($val['PARENT_ID'] == 0){
|
|
$output.='<option value="'.$val['ID'].'" >'
|
|
.$val['NAME'].'</option>';
|
|
}
|
|
|
|
$output.='</optgroup>';
|
|
}
|
|
|
|
|
|
|
|
$output.=' </select>
|
|
<div class="help-block with-errors"></div>
|
|
';
|
|
//}
|
|
$output.='<script>';
|
|
$output.="$('#listOfService').select2();";
|
|
$output.='</script>';
|
|
|
|
return $output;
|
|
}
|
|
function getServiceHeadByType($caregiver_type){
|
|
|
|
// $this->db->select("master_cg_service.service_head_id");
|
|
// $this->db->select("master_service_head.service_head_name");
|
|
// $this->db->select("master_service_head.priority");
|
|
// $this->db->where('master_cg_service.skill_id', $caregiver_type);
|
|
// $this->db->from("master_cg_service");
|
|
// $this->db->join("master_service_head", "master_service_head.id = master_cg_service.service_head_id");
|
|
// $this->db->group_by("master_cg_service.service_head_id");
|
|
// $this->db->order_by('master_service_head.priority', 'asc');
|
|
$this->db->select("master_skill_service_head_mapping.service_head_id as service_head_id,master_service_head.service_head_name, IFNULL(master_skill_service_head_mapping.priority,9999) as hpriority");
|
|
$this->db->where('master_skill_service_head_mapping.skill_id', $caregiver_type);
|
|
$this->db->where('master_service_head.status', '1');
|
|
$this->db->order_by('hpriority', 'asc');
|
|
$this->db->from('master_skill_service_head_mapping');
|
|
$this->db->join('master_service_head','master_service_head.id=master_skill_service_head_mapping.service_head_id','left');
|
|
$query = $this->db->get()->result();
|
|
// echo $this->db->last_query();echo '<br>';die;
|
|
return $query;
|
|
}
|
|
function getServiceHeadByType2($caregiver_type)
|
|
{
|
|
$this->db->select("master_service_head.id as service_head_id,master_service_head.service_head_name,master_service_head.required, IFNULL(master_service_head.priority,9999) as hpriority");
|
|
$this->db->where('master_service_head.skill_id', $caregiver_type);
|
|
$this->db->where('master_service_head.status', '1');
|
|
$this->db->order_by('hpriority', 'asc');
|
|
$this->db->from('master_service_head');
|
|
$query = $this->db->get()->result();
|
|
return $query;
|
|
}
|
|
|
|
|
|
function getExperienceByHeadId($caregiver_type,$ServiceHeadId){
|
|
// echo '||'.$caregiver_type.'||'.$ServiceHeadId;
|
|
$this->db->select("master_cg_service.*");
|
|
// $this->db->where('master_cg_service.skill_id', $caregiver_type);
|
|
$this->db->where('master_cg_service.service_head_id', $ServiceHeadId);
|
|
$this->db->where('master_cg_service.status', '1');
|
|
$this->db->order_by('master_cg_service.priority', 'asc');
|
|
$this->db->from("master_cg_service");
|
|
return $query = $this->db->get()->result();
|
|
}
|
|
function exp_by_condition(){
|
|
$query=$this->db->get_where('experience_label', array('experience_group' => '1'));
|
|
return $query->result();
|
|
}
|
|
function exp_by_demographics(){
|
|
$this->db->order_by('showOrder','asc');
|
|
$query=$this->db->get_where('experience_label', array('experience_group' => '2'));
|
|
|
|
return $query->result();
|
|
}
|
|
function rn_exp(){
|
|
$query=$this->db->get_where('experience_label', array('skill_id' => '4'));
|
|
return $query->result();
|
|
}
|
|
function lpn_exp(){
|
|
$query=$this->db->get_where('experience_label', array('skill_id' => '5'));
|
|
return $query->result();
|
|
}
|
|
function updateCaregiverDoc($id){
|
|
$this->db->where('id', $id);
|
|
$this->db->delete('users_documents');
|
|
}
|
|
function religious_preferences(){
|
|
$query=$this->db->get_where('master_religious');
|
|
return $query->result();
|
|
}
|
|
function getPendingApplication() {
|
|
$this->db->where('progress <' ,'100');
|
|
$query = $this->db->get('caregiver');
|
|
//echo '<pre>'; print_r($query); echo '</pre>';die;
|
|
return $query->result();
|
|
}
|
|
function saveCaregiverStep($tbl, $data, $midid)
|
|
{
|
|
// echo 'TABLE NAME : '.$tbl;echo '<br>';
|
|
// echo '<pre>'; print_r($data);echo '<br>';die;
|
|
if($tbl=='caregiver'){
|
|
$this->db->where('id', $midid);
|
|
}else{
|
|
$this->db->where('caregiver_table_id', $midid);
|
|
}
|
|
$this->db->update($tbl, $data);
|
|
// echo $this->db->last_query();
|
|
// echo '<br>';
|
|
// die;
|
|
$effected_row=$this->db->affected_rows();
|
|
if($effected_row>0){ return true; }else{ return false; }
|
|
}
|
|
function RejectAcceptance($data){
|
|
$id=$data['id'];
|
|
$data['submited_for_verification']='no';
|
|
unset($data['id']);
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver', $data);
|
|
// echo $this->db->last_query();die;
|
|
$effected_row=$this->db->affected_rows();
|
|
if($effected_row>0){ return true; }else{ return false; }
|
|
}
|
|
function updateShiftPreferances($id,$pref)
|
|
{
|
|
$pref=json_decode($pref);
|
|
if(!empty($pref)){
|
|
$this->db->where('nurse_id', $id);
|
|
$this->db->delete('schedule_preferences');
|
|
foreach ($pref as $prefData)
|
|
{
|
|
|
|
$data = array();
|
|
$data['nurse_id'] = $id;
|
|
$data['day'] = $prefData->day;
|
|
$data['pref_type'] = $prefData->shift_type;
|
|
if($prefData->shift_type == 'shift')
|
|
{
|
|
$data['session'] = $prefData->type_val;
|
|
}
|
|
else
|
|
{
|
|
$data['time'] = $prefData->type_val;
|
|
}
|
|
$this->db->insert('schedule_preferences', $data);
|
|
}
|
|
}
|
|
|
|
}
|
|
function getShiftPref($id)
|
|
{
|
|
$this->db->where('nurse_id' ,$id);
|
|
$query = $this->db->get('schedule_preferences');
|
|
return $query->result();
|
|
}
|
|
function get_user_type($eml)
|
|
{
|
|
$this->db->select('a2.*');
|
|
//$this->db->select("caregiver.id as id");
|
|
$this->db->from('users a1');
|
|
$this->db->join('users_groups a2', 'a1.id = a2.user_id', 'left');
|
|
$this->db->where('a1.email', $eml);
|
|
$query = $this->db->get();
|
|
return $query->result();
|
|
}
|
|
function saveOnboardToken($data)
|
|
{
|
|
$userId = $data['user_id'];
|
|
|
|
$this->db->where('id', $userId);
|
|
$cg = $this->db->get('caregiver')->row();
|
|
$qualification_type = $cg->qualification_type;
|
|
|
|
$this->db->select('id');
|
|
$this->db->where('qualification_type', $qualification_type);
|
|
$query = $this->db->get('onboardvideo');
|
|
$videos = $query->result();
|
|
$data['videos'] = json_encode($videos);
|
|
|
|
$this->db->insert('caregiver_onboard_registration_token', $data);
|
|
}
|
|
|
|
function getNameBysearch($search,$orderColumn, $orderType) {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('video_slug', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('video_title', $orderType);
|
|
|
|
$this->db->like('id', $search);
|
|
$this->db->or_like('video_slug', $search);
|
|
$this->db->or_like('video_title', $search);
|
|
$query = $this->db->get('onboardvideo');
|
|
return $query->result();
|
|
}
|
|
|
|
function getvideoByLimit($limit, $start, $orderColumn, $orderType) {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('video_slug', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('video_title', $orderType);
|
|
|
|
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('onboardvideo');
|
|
return $query->result();
|
|
}
|
|
|
|
function getVideoByLimitBySearch($limit, $start, $search) {
|
|
|
|
$this->db->like('id', $search);
|
|
|
|
$this->db->order_by('id', 'desc');
|
|
$this->db->or_like('video_slug', $search);
|
|
$this->db->or_like('video_title', $search);
|
|
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('onboardvideo');
|
|
return $query->result();
|
|
}
|
|
|
|
public function videoAssigned($uid)
|
|
{
|
|
$this->db->where('user_id', $uid);
|
|
$query = $this->db->get('caregiver_onboard_registration_token');
|
|
$videos = $query->row();
|
|
return $videos;
|
|
}
|
|
|
|
public function getVideoInteractionList($qualification_type,$uid)
|
|
{
|
|
$this->db->where('qualification_type', $qualification_type);
|
|
$query = $this->db->get('onboardvideo');
|
|
$videos = $query->result();
|
|
foreach($videos as $video)
|
|
{
|
|
$this->db->where('video_id', $video->id);
|
|
$this->db->where('user_id', $uid);
|
|
$examResultList = $this->db->get('quizexamresult');
|
|
$examCount = $examResultList->num_rows();
|
|
$examRes = $examResultList->row();
|
|
if($examCount > 0)
|
|
$video->marks_percentage =$examRes->marks_percentage;
|
|
else
|
|
$video->marks_percentage='NAN';
|
|
|
|
if($examCount > 0)
|
|
{
|
|
$video->watchStatus = 1;
|
|
}
|
|
else{
|
|
$video->watchStatus = 0;
|
|
}
|
|
}
|
|
return $videos;
|
|
// _die($videos);
|
|
}
|
|
|
|
public function getVideoInteractionChatHistory($videoId,$cgId)
|
|
{
|
|
$this->db->where('user_id', $cgId);
|
|
$this->db->where('video_id', $videoId);
|
|
$query = $this->db->get('caregiver_video_query');
|
|
return $query->result();
|
|
}
|
|
public function getChatListByUserID($cgId)
|
|
{
|
|
$this->db->where('user_id', $cgId);
|
|
$query = $this->db->get('caregiver_video_query');
|
|
return $query->result();
|
|
}
|
|
public function getExamResultByUserID($cgId)
|
|
{
|
|
$this->db->where('user_id', $cgId);
|
|
$query = $this->db->get('quizresult_qa');
|
|
return $query->result();
|
|
}
|
|
|
|
public function add_caregiver_background_check($data)
|
|
{
|
|
$this->db->insert('caregiver_background_check', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
public function update_caregiver_background_check($backGround_ID,$data)
|
|
{
|
|
$this->db->where('id', $backGround_ID);
|
|
$this->db->update('caregiver_background_check', $data);
|
|
}
|
|
|
|
public function getBackgroundCheckReportList()
|
|
{
|
|
$query = $this->db->get('caregiver_background_check');
|
|
return $query->result();
|
|
}
|
|
public function getBackgroundCheckReport($cgId)
|
|
{
|
|
$this->db->where('cg_id', $cgId);
|
|
$this->db->or_where('id',$cgId);
|
|
$query = $this->db->get('caregiver_background_check');
|
|
return $query->result();
|
|
}
|
|
|
|
function DeleteOtherReferencesByCaregiverId($caregiver_id){
|
|
$this->db->where('caregiver_table_id', $caregiver_id);
|
|
$query = $this->db->get('caregiver_other_references')->result();
|
|
if($query){
|
|
$this->db->where('caregiver_table_id', $caregiver_id);
|
|
$this->db->delete('caregiver_other_references');
|
|
return true;
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
function saveOtherReferences($data, $caregiver_id){
|
|
echo "<pre>";print_r($data);exit;
|
|
$data['caregiver_table_id'] = $caregiver_id;
|
|
$this->db->insert('caregiver_other_references',$data);
|
|
return true;
|
|
}
|
|
function saveOtherReferences2($data,$caregiver_id)
|
|
{
|
|
$data['caregiver_table_id']=$caregiver_id;
|
|
$this->db->insert('caregiver_other_references', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
function UpdateOtherReferences2($refId,$docId)
|
|
{
|
|
$data['users_documents_id']=$docId;
|
|
$this->db->where('id',$refId);
|
|
$this->db->update('caregiver_other_references', $data);
|
|
}
|
|
function UpdateOtherReferences3($refId,$data)
|
|
{
|
|
$this->db->where('id',$refId);
|
|
$this->db->update('caregiver_other_references', $data);
|
|
}
|
|
|
|
function deleteOtherReference($id){
|
|
$this->db->where('id', $id);
|
|
$this->db->delete('caregiver_other_references');
|
|
}
|
|
|
|
function getOtherReferenceById($id){
|
|
$this->db->where('status','1');
|
|
$this->db->where('caregiver_table_id',$id);
|
|
$query = $this->db->get('caregiver_other_references')->result();
|
|
return $query;
|
|
}
|
|
|
|
function getLicensesById($id){
|
|
$this->db->where('status','1');
|
|
$this->db->where('caregiver_table_id',$id);
|
|
$query = $this->db->get('caregiver_licenses')->result();
|
|
return $query;
|
|
}
|
|
|
|
function DeleteLicenseDataByCaregiverId($caregiver_id){
|
|
$this->db->where('caregiver_table_id', $caregiver_id);
|
|
$query = $this->db->get('caregiver_licenses')->result();
|
|
if($query){
|
|
$this->db->where('caregiver_table_id', $caregiver_id);
|
|
$this->db->delete('caregiver_licenses');
|
|
return true;
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
function saveLicenseData($data, $caregiver_id){
|
|
// echo "<pre>";print_r($data);exit;
|
|
$data['caregiver_table_id'] = $caregiver_id;
|
|
$this->db->insert('caregiver_licenses', $data);
|
|
return true;
|
|
|
|
}
|
|
|
|
function deleteLicenseData($id){
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver_licenses', array('status'=>0));
|
|
}
|
|
function updateLicenseDocuments($data,$id,$license_id){
|
|
// print_r( $data);exit;
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('id', $license_id);
|
|
$this->db->update('caregiver_licenses', $data);
|
|
}
|
|
|
|
function getOtherReferenceByIonId($id) {
|
|
$this->db->select('a1.*');
|
|
//$this->db->select("caregiver.id as id");
|
|
$this->db->from('caregiver_other_references a1');
|
|
$this->db->join('caregiver a2', 'a1.caregiver_table_id = a2.id');
|
|
$this->db->where('a2.ion_user_id', $id);
|
|
$this->db->where('a1.status', 1);
|
|
$query = $this->db->get();
|
|
return $query->result();
|
|
}
|
|
|
|
function getLicensesByIonId($id) {
|
|
$this->db->select('a1.*');
|
|
//$this->db->select("caregiver.id as id");
|
|
$this->db->from('caregiver_licenses a1');
|
|
$this->db->join('caregiver a2', 'a1.caregiver_table_id = a2.id');
|
|
$this->db->where('a2.ion_user_id', $id);
|
|
$this->db->where('a1.status', 1);
|
|
$query = $this->db->get();
|
|
return $query->result();
|
|
}
|
|
function getInformationForEmail($id){
|
|
$this->db->select('email,ion_user_id');
|
|
$this->db->from('caregiver');
|
|
$this->db->where('id', $id);
|
|
$query = $this->db->get();
|
|
return $query->row();
|
|
}
|
|
function getMailBody($type){
|
|
$this->db->select('*');
|
|
$this->db->from('mail_body_settings');
|
|
$this->db->where('slug', $type);
|
|
$this->db->where('status', 1);
|
|
$query = $this->db->get();
|
|
return $query->row();
|
|
}
|
|
function insertMailLog($data){
|
|
// _die($data['ion_user_id']);
|
|
|
|
$this->db->select('*');
|
|
$this->db->from('mail_log');
|
|
$this->db->where('caregiver_table_id', $data['caregiver_table_id']);
|
|
$this->db->where('ion_user_id', $data['ion_user_id']);
|
|
$this->db->where('type', $data['type']);
|
|
$query = $this->db->get()->row();
|
|
// echo $this->db->last_query();die;
|
|
if($query){
|
|
$mail_count = $query->mail_count + 1;
|
|
$mainId = $query->id;
|
|
$data2 = array('mail_count' => $mail_count,'email_send_date'=>$data['email_send_date']);
|
|
$this->db->where('id', $mainId);
|
|
$this->db->update('mail_log', $data2);
|
|
}else{
|
|
$this->db->insert("mail_log", $data);
|
|
$mainId=$this->db->insert_id();
|
|
}
|
|
|
|
return $mainId;
|
|
}
|
|
|
|
function getCaregiverStatus(){
|
|
$this->db->select('a1.*,a2.employementHistory2,a3.created_on');
|
|
//$this->db->select("caregiver.id as id");
|
|
$this->db->from('caregiver a1');
|
|
$this->db->join('caregiver_step2 a2', 'a2.caregiver_table_id = a1.id');
|
|
$this->db->join('users a3', 'a3.id = a1.ion_user_id');
|
|
$this->db->where('a1.submited_for_verification', 'no');
|
|
$this->db->where('a1.qualification_type', 4);
|
|
$query = $this->db->get();
|
|
return $query->result_array();
|
|
}
|
|
function getMailLogById($caregiver_id,$ion_user_id,$type){
|
|
$this->db->select('*');
|
|
$this->db->from('mail_log');
|
|
$this->db->where('caregiver_table_id', $caregiver_id);
|
|
$this->db->where('ion_user_id', $ion_user_id);
|
|
$this->db->where('type', $type);
|
|
$query = $this->db->get();
|
|
return $query->row();
|
|
}
|
|
function updateMailCount($mailLogId,$mail_count){
|
|
$mail_count = array('mail_count' => $mail_count);
|
|
$this->db->where('id', $mailLogId);
|
|
$this->db->update('mail_log', $mail_count);
|
|
return $this->db->affected_rows();
|
|
}
|
|
|
|
//added on 21-10-2021
|
|
function updateMailLog($mailLogId,$data)
|
|
{
|
|
$this->db->where('id', $mailLogId);
|
|
$this->db->update('mail_log', $data);
|
|
return $mailLogId;
|
|
}
|
|
//ending added on 21-10-2021
|
|
|
|
function updateOtherReferenceDocuments($data,$id,$other_reference_id){
|
|
// print_r( $data);exit;
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('id', $other_reference_id);
|
|
$this->db->update('caregiver_other_references', $data);
|
|
}
|
|
function get_referral_source(){
|
|
$this->db->order_by('name', 'ASC');
|
|
$query=$this->db->get_where('master_cg_referal_source', array('status' => '1'));
|
|
return $query->result();
|
|
}
|
|
|
|
function saveCaregivercertificate($tbl, $data, $id, $type)
|
|
{
|
|
// echo 'TABLE NAME : '.$tbl;echo $id; '<br>';
|
|
// echo '<pre>'; print_r($data);echo '<br>';die;
|
|
|
|
$this->db->select('*');
|
|
$this->db->from($tbl);
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('type', $type);
|
|
$query = $this->db->get()->row();
|
|
if($query) {
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('type', $type);
|
|
$this->db->update($tbl, $data);
|
|
}else{
|
|
$this->db->insert($tbl, $data);
|
|
}
|
|
// echo $this->db->last_query();echo '<br>';die;
|
|
}
|
|
function getCertificatesById($id){
|
|
$this->db->where('caregiver_table_id',$id);
|
|
$query = $this->db->get('caregiver_certificate')->result();
|
|
return $query;
|
|
}
|
|
function getCertificatesByStatus($id){
|
|
$this->db->where('caregiver_table_id',$id);
|
|
$this->db->where('status',1);
|
|
$query = $this->db->get('caregiver_certificate')->result();
|
|
return $query;
|
|
}
|
|
|
|
function updateCertificateDocuments($data,$id,$certficateID){
|
|
// print_r( $data);exit;
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('id', $certficateID);
|
|
$this->db->update('caregiver_certificate', $data);
|
|
}
|
|
|
|
function getRelationshipName($id){
|
|
$this->db->select('name');
|
|
$this->db->from('master_relations');
|
|
$this->db->where('id', $id);
|
|
$query = $this->db->get()->row();
|
|
return $query;
|
|
}
|
|
|
|
|
|
// added on 26-10-2021
|
|
function insertIntoMailLogTable($data,$emailsendDate)
|
|
{
|
|
if($emailsendDate==""){
|
|
$data['email_send_date']=gmdate("Y-m-d H:i:s");
|
|
$query=$this->db->insert('mail_log', $data);
|
|
if($query){
|
|
$insertId=$this->db->insert_id();
|
|
$this->db->where('id',$insertId);
|
|
$this->db->update('mail_log',array('send_status'=>"1",'email_send_at'=>$data['email_send_date']));
|
|
$this->db->where('id',$insertId);
|
|
$query=$this->db->get('mail_log')->row();
|
|
return $query;
|
|
}
|
|
}
|
|
else{
|
|
foreach($emailsendDate as $nextEmailDate){
|
|
$data['email_send_date']=$nextEmailDate;
|
|
$query=$this->db->insert('mail_log', $data);
|
|
}
|
|
|
|
}
|
|
}
|
|
function getFromMailLogTable($id,$ion_user_id,$type)
|
|
{
|
|
|
|
$this->db->where('caregiver_table_id',$id);
|
|
$this->db->where('ion_user_id',$ion_user_id);
|
|
$this->db->where('type',$type);
|
|
$this->db->order_by('id', 'ASC');
|
|
$query=$this->db->get('mail_log');
|
|
$rows=$query->num_rows();
|
|
if($rows>0){
|
|
return $query->result();
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
function updateMailLogTable($mainId,$diffTime)
|
|
{
|
|
if($diffTime==""){
|
|
$cdt=gmdate("Y-m-d H:i:s"); //in UTC, cdt = current date time
|
|
$this->db->where('id',$mainId[0]);
|
|
$this->db->update('mail_log',array('email_send_date'=>$cdt));
|
|
$this->db->where('id',$mainId[0]);
|
|
$query=$this->db->get('mail_log')->row();
|
|
return $query;
|
|
|
|
}else{
|
|
$length=count($mainId);
|
|
for($i=1;$i<$length;$i++){
|
|
$this->db->where('id',$mainId[$i]);
|
|
// $strdt=strtotime($this->db->get('mail_log')->row()->email_send_date)+$diffTime;
|
|
$query=$this->db->get('mail_log')->row();
|
|
$sst=$query->send_status;
|
|
if($sst==0){
|
|
$strdt=(strtotime(($query->email_send_date))+$diffTime);
|
|
$dt=date("Y-m-d H:i:s",$strdt);
|
|
$this->db->where('id',$mainId[$i]);
|
|
$this->db->update('mail_log',array('email_send_date'=>$dt));
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
function cronUpdateMailLogTable($mainId,$cdt)
|
|
{
|
|
$this->db->where('id',$mainId);
|
|
$this->db->update('mail_log',array('send_status'=>1,'email_send_at'=>$cdt));
|
|
}
|
|
//ending added on 26-10-2021
|
|
|
|
|
|
function getReferralSourceName($id){
|
|
$this->db->select('name');
|
|
$this->db->from('master_cg_referal_source');
|
|
$this->db->where('id', $id);
|
|
$query = $this->db->get()->row();
|
|
return $query;
|
|
}
|
|
|
|
function getServiceHead($caregiver_type,$group_id){
|
|
|
|
// $this->db->select("master_cg_service.service_head_id");
|
|
// $this->db->select("master_service_head.service_head_name");
|
|
// $this->db->select("master_service_head.priority");
|
|
// $this->db->where('master_cg_service.skill_id', $caregiver_type);
|
|
// $this->db->from("master_cg_service");
|
|
// $this->db->join("master_service_head", "master_service_head.id = master_cg_service.service_head_id");
|
|
// $this->db->group_by("master_cg_service.service_head_id");
|
|
// $this->db->order_by('master_service_head.priority', 'asc');
|
|
$this->db->select("master_skill_service_head_mapping.service_head_id as service_head_id,master_service_head.service_head_name, IFNULL(master_skill_service_head_mapping.priority,9999) as hpriority");
|
|
$this->db->where('master_skill_service_head_mapping.skill_id', $caregiver_type);
|
|
$this->db->where('master_skill_service_head_mapping.service_head_id', $group_id);
|
|
$this->db->where('master_service_head.status', '1');
|
|
$this->db->order_by('hpriority', 'asc');
|
|
$this->db->from('master_skill_service_head_mapping');
|
|
$this->db->join('master_service_head','master_service_head.id=master_skill_service_head_mapping.service_head_id','left');
|
|
$query = $this->db->get()->row();
|
|
// echo $this->db->last_query();echo '<br>';die;
|
|
return $query;
|
|
}
|
|
|
|
|
|
// function getExperienceByHeadId($caregiver_type,$ServiceHeadId){
|
|
// // echo '||'.$caregiver_type.'||'.$ServiceHeadId;
|
|
// $this->db->select("master_cg_service.*");
|
|
// // $this->db->where('master_cg_service.skill_id', $caregiver_type);
|
|
// $this->db->where('master_cg_service.service_head_id', $ServiceHeadId);
|
|
// $this->db->where('master_cg_service.status', '1');
|
|
// $this->db->order_by('master_cg_service.priority', 'asc');
|
|
// $this->db->from("master_cg_service");
|
|
// return $query = $this->db->get()->result();
|
|
// }
|
|
|
|
function getCareExp($caregiver_type,$group_id,$cg_id){
|
|
// _die($group_id);
|
|
$this->db->select('caregiver_experience.*,master_cg_service.service_name');
|
|
$this->db->where('caregiver_experience.caregiver_id',$cg_id);
|
|
$this->db->where('caregiver_experience.group_id',$group_id);
|
|
// $this->db->where('caregiver_experience.skill_id',$caregiver_type);
|
|
$this->db->from('caregiver_experience');
|
|
$this->db->join('master_cg_service','master_cg_service.id=caregiver_experience.experience_id');
|
|
$query=$this->db->get();
|
|
return $query->result();
|
|
}
|
|
|
|
function demographics_exp_byId($exp_id){
|
|
$this->db->order_by('showOrder','asc');
|
|
$query=$this->db->get_where('experience_label', array('experience_group' => '2','id' => $exp_id));
|
|
|
|
return $query->row();
|
|
}
|
|
function get_website_setting(){
|
|
$this->db->select('*');
|
|
$this->db->from('website_settings');
|
|
$query=$this->db->get();
|
|
return $query->row();
|
|
}
|
|
|
|
|
|
|
|
// for caregiver disclosure tabs in caregiver panel
|
|
function getQualificationEmployeeType($caregiverId){
|
|
$this->db->select("a.qualification_type,b.employee_type");
|
|
$this->db->from('caregiver a');
|
|
$this->db->join('caregiver_step3 b', 'b.caregiver_table_id = a.id', 'left');
|
|
$this->db->where('a.id',$caregiverId);
|
|
$query = $this->db->get()->row();
|
|
return $query;
|
|
}
|
|
|
|
function updateForConcentSignature($sigData,$id)
|
|
{
|
|
$this->db->where('caregiver_table_id',$id);
|
|
$this->db->update('caregiver_step2',$sigData);
|
|
}
|
|
|
|
function getSignatureInfo($caregiverId)
|
|
{
|
|
$this->db->where('caregiver_id',$caregiverId);
|
|
$result=$this->db->get('caregiver_document_signature')->result();
|
|
return $result;
|
|
}
|
|
|
|
function insertExtraPdfInfo($data)
|
|
{
|
|
$this->db->where('caregiver_id',$data['caregiver_id']);
|
|
$this->db->where('document_type',$data['document_type']);
|
|
$this->db->from('extra_editable_pdf_info');
|
|
$rows=$this->db->get()->num_rows();
|
|
// pre($rows);die();
|
|
if($rows>0){
|
|
$this->db->where('caregiver_id',$data['caregiver_id']);
|
|
$this->db->where('document_type',$data['document_type']);
|
|
$this->db->update('extra_editable_pdf_info',$data);
|
|
$query=$this->db->affected_rows();
|
|
if($query){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}else{
|
|
$query=$this->db->insert('extra_editable_pdf_info', $data);
|
|
if($query){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|
|
function getExtraInfoOfPdf($cg_id,$document_details)
|
|
{
|
|
if($document_details==""){
|
|
$this->db->where('caregiver_id',$cg_id);
|
|
$this->db->from('extra_editable_pdf_info');
|
|
$result=$this->db->get()->result();
|
|
return $result;
|
|
}else{
|
|
$this->db->where('caregiver_id',$cg_id);
|
|
$this->db->where('document_type',$document_details);
|
|
$this->db->from('extra_editable_pdf_info');
|
|
$result=$this->db->get()->row();
|
|
return $result;
|
|
}
|
|
}
|
|
|
|
function getFcmToken($caregiver_id){
|
|
|
|
$this->db->select("b.fcm_token, a.id");
|
|
$this->db->from('caregiver a');
|
|
$this->db->join('users b', 'b.id = a.ion_user_id', 'left');
|
|
$this->db->where('a.id',$caregiver_id);
|
|
$query = $this->db->get()->row();
|
|
return $query;
|
|
}
|
|
|
|
function getFcmTokenByScheduleId($scheduleId){
|
|
|
|
$this->db->select("b.fcm_token,a.id as schedule_id, c.ion_user_id");
|
|
$this->db->from('caregiver_schedule a');
|
|
$this->db->join('caregiver c', 'c.id = a.caregiver_id', 'left');
|
|
$this->db->join('users b', 'b.id = c.ion_user_id', 'left');
|
|
$this->db->where('a.id',$scheduleId);
|
|
$query = $this->db->get()->row();
|
|
return $query;
|
|
}
|
|
|
|
|
|
|
|
|
|
function getServiceHeads($cg_id,$cg_type)
|
|
{
|
|
$this->db->select("a.*,IFNULL(a.priority,9999) as priority");
|
|
$this->db->where('skill_id',$cg_type);
|
|
$this->db->where('status','1');
|
|
$this->db->order_by('priority','asc');
|
|
$this->db->from('master_service_head a');
|
|
$query=$this->db->get();
|
|
$result=$query->result();
|
|
foreach($result as $res){
|
|
$this->db->where('service_head_id',$res->id);
|
|
$this->db->where('status','1');
|
|
$this->db->order_by('priority','asc');
|
|
$this->db->from('master_cg_service b');
|
|
$query2=$this->db->get();
|
|
$result2=$query2->result();
|
|
$res->data=$result2;
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
function getExperienceInfo($cg_id)
|
|
{
|
|
$this->db->where('caregiver_id',$cg_id);
|
|
$this->db->order_by('group_id','asc');
|
|
$this->db->from('caregiver_experience');
|
|
$query=$this->db->get();
|
|
$result=$query->result();
|
|
$experience_array=[];
|
|
foreach($result as $res){
|
|
$experience[$res->group_id][$res->experience_id]=$res->experience_value;
|
|
}
|
|
return $experience;
|
|
}
|
|
function getOtherReferences($cg_id)
|
|
{
|
|
$this->db->where('caregiver_table_id',$cg_id);
|
|
$this->db->from('caregiver_step3');
|
|
$query=$this->db->get();
|
|
return $query->row();
|
|
|
|
}
|
|
function getNurseLicenseInfoByDocType($cg_id,$doc_type)
|
|
{
|
|
$this->db->where('caregiver_table_id',$cg_id);
|
|
// $this->db->where('documents_type',$doc_type);
|
|
$this->db->from('caregiver_licenses');
|
|
$query=$this->db->get();
|
|
return $query->result();
|
|
}
|
|
function checkCXRStatus($cg_id)
|
|
{
|
|
$this->db->select("a.PPD_Quantiferonon_status as status,a.CXR");
|
|
$this->db->where('caregiver_table_id',$cg_id);
|
|
$this->db->from('caregiver_step3 a');
|
|
$query=$this->db->get();
|
|
return $query->row();
|
|
|
|
}
|
|
function getCgExperienceInfo($cg_id)
|
|
{
|
|
$this->db->where('caregiver_id',$cg_id);
|
|
$this->db->order_by('group_id','asc');
|
|
$this->db->from('caregiver_experience');
|
|
$query=$this->db->get();
|
|
$result=$query->result();
|
|
// $experience_array=[];
|
|
// foreach($result as $res){
|
|
// $experience[$res->group_id][$res->experience_id]=$res->experience_value;
|
|
// }
|
|
return $result;
|
|
}
|
|
|
|
function get_experince_value($caregiverId,$expLblId){
|
|
// _die($group_id);
|
|
$this->db->select('caregiver_experience.*');
|
|
$this->db->where('caregiver_experience.caregiver_id',$caregiverId);
|
|
$this->db->where('caregiver_experience.experience_id',$expLblId);
|
|
// $this->db->where('caregiver_experience.skill_id',$caregiver_type);
|
|
$this->db->from('caregiver_experience');
|
|
$query=$this->db->get();
|
|
return $query->row();
|
|
}
|
|
|
|
function getAllCaregiverList($limit, $start, $orderColumn, $orderType, $search="") {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('qualification_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('fname', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('email', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('phone', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
}
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('caregiver');
|
|
return $query->result();
|
|
}
|
|
function getAllCaregiverListCount($limit, $start, $orderColumn, $orderType, $search="") {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('qualification_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('fname', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('email', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('phone', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->like('fname', $search);
|
|
$this->db->or_like('phone', $search);
|
|
$this->db->or_like('email', $search);
|
|
}
|
|
$query = $this->db->get('caregiver');
|
|
return $query->result();
|
|
}
|
|
|
|
function getAllCaregiverDocs($caregiver_id, $limit, $start, $orderColumn, $orderType, $search="") {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('users_documents.id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('users_documents.documents_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('document_name.name', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('users_documents.date_completed', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('users_documents.expiration_date', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->group_start();
|
|
$this->db->like('users_documents.documents_type', $search);
|
|
$this->db->or_like('document_name.name', $search);
|
|
// $this->db->or_like('email', $search);
|
|
$this->db->group_end();
|
|
}
|
|
$this->db->select('users_documents.*,document_name.name,document_name.short_code');
|
|
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
|
|
$this->db->where('users_documents.userid', $caregiver_id);
|
|
$this->db->where('users_documents.documents_type !=', 'PHO');
|
|
$this->db->where('users_documents.status', '1');
|
|
$this->db->limit($limit, $start);
|
|
$query = $this->db->get('users_documents');
|
|
// _die($this->db->last_query());
|
|
return $query->result();
|
|
}
|
|
function getAllCaregiverDocsCount($caregiver_id, $limit, $start, $orderColumn, $orderType, $search="") {
|
|
if($orderColumn==0)
|
|
$this->db->order_by('users_documents.id', $orderType);
|
|
else if($orderColumn==1)
|
|
$this->db->order_by('users_documents.documents_type', $orderType);
|
|
else if($orderColumn==2)
|
|
$this->db->order_by('document_name.name', $orderType);
|
|
else if($orderColumn==3)
|
|
$this->db->order_by('users_documents.date_completed', $orderType);
|
|
else if($orderColumn==4)
|
|
$this->db->order_by('users_documents.expiration_date', $orderType);
|
|
|
|
if(isset($search) && $search!='')
|
|
{
|
|
$this->db->group_start();
|
|
$this->db->like('document_name.short_code', $search);
|
|
$this->db->or_like('document_name.name', $search);
|
|
// $this->db->or_like('email', $search);
|
|
$this->db->group_end();
|
|
}
|
|
$this->db->select('users_documents.*,document_name.name,document_name.short_code');
|
|
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
|
|
$this->db->where('users_documents.userid', $caregiver_id);
|
|
$this->db->where('users_documents.documents_type !=', 'PHO');
|
|
$this->db->where('users_documents.status', '1');
|
|
$query = $this->db->get('users_documents');
|
|
return $query->result();
|
|
}
|
|
function getDocDetails($doc_id){
|
|
|
|
$this->db->select('users_documents.*,document_mail_template.short_code,document_mail_template.message,document_mail_template.subject,document_mail_template.name');
|
|
$this->db->join('document_mail_template', 'users_documents.documents_type = document_mail_template.short_code');
|
|
$this->db->where('users_documents.id', $doc_id);
|
|
$this->db->where('users_documents.status', '1');
|
|
$query = $this->db->get('users_documents');
|
|
return $query->row();
|
|
}
|
|
function getDisclosure($cg_type,$cg_id){
|
|
|
|
$this->db->select('disclosure_page_name.*');
|
|
$this->db->like('disclosure_page_name.caregiver_type', $cg_type);
|
|
$this->db->order_by('disclosure_page_name.name');
|
|
$query = $this->db->get('disclosure_page_name')->result();
|
|
// _die($this->db->last_query());
|
|
foreach($query as $key=>$val){
|
|
$short_code = $val->short_code;
|
|
// _die($short_code);
|
|
$this->db->select('caregiver_document_signature.*');
|
|
$this->db->where('caregiver_id', $cg_id);
|
|
$this->db->where('document_details', $short_code);
|
|
$query1 = $this->db->get('caregiver_document_signature')->row();
|
|
if($query1){
|
|
$query[$key]->disclosure_available = 'available';
|
|
$query[$key]->doc=$query1;
|
|
}else{
|
|
$query[$key]->disclosure_available = 'not available';
|
|
}
|
|
}
|
|
// _die($query);
|
|
return $query;
|
|
}
|
|
function getDisclosureByType($type){
|
|
// return $type;
|
|
$this->db->select('short_code,name');
|
|
$where = "FIND_IN_SET('".$type."', caregiver_type)";
|
|
$this->db->where($where);
|
|
$this->db->where('location','1');
|
|
$this->db->order_by('name');
|
|
$query = $this->db->get('disclosure_page_name')->result_array();
|
|
return $query;
|
|
// _die($this->db->last_query());
|
|
}
|
|
function getOnBoardingDocsByType($type){
|
|
// return $type;
|
|
$this->db->select('short_code,name');
|
|
$where = "FIND_IN_SET('".$type."', caregiver_type)";
|
|
$this->db->where($where);
|
|
$this->db->where('location','2');
|
|
$this->db->order_by('name');
|
|
$query = $this->db->get('disclosure_page_name')->result_array();
|
|
return $query;
|
|
// _die($this->db->last_query());
|
|
}
|
|
function verifyDisclosure($caregiver_id,$doc_short_code){
|
|
$data['verified_by_ionid']=$_SESSION['user_id'];
|
|
$data['verified_on']=date ('Y-m-d H:i:s', now());
|
|
|
|
$this->db->where('caregiver_id', $caregiver_id);
|
|
$this->db->where('document_details', $doc_short_code);
|
|
$result=$this->db->update('caregiver_document_signature', $data);
|
|
return $result;
|
|
|
|
}
|
|
function getNonMedicalDoc($caregiver_id){
|
|
|
|
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
|
|
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
|
|
$this->db->where('users_documents.userid', $caregiver_id);
|
|
$this->db->where('document_name.type', 'non_medical');
|
|
$this->db->where('users_documents.status', '1');
|
|
$query = $this->db->get('users_documents');
|
|
// _die($this->db->last_query());
|
|
return $query->result();
|
|
}
|
|
|
|
function getCertificateById($id){
|
|
$this->db->select('caregiver_certificate.*');
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('status', 1);
|
|
$query = $this->db->get('caregiver_certificate')->result();
|
|
return $query;
|
|
|
|
}
|
|
|
|
function getVaccineDoc($caregiver_id){
|
|
|
|
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
|
|
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
|
|
$this->db->order_by('document_name.name');
|
|
$this->db->where('users_documents.userid', $caregiver_id);
|
|
$this->db->where('document_name.type', 'vaccine');
|
|
$this->db->where('users_documents.status', '1');
|
|
$query = $this->db->get('users_documents');
|
|
// _die($this->db->last_query());
|
|
return $query->result();
|
|
}
|
|
|
|
function getUsAuthDoc($caregiver_id){
|
|
$keyType="us_auth";
|
|
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
|
|
return $result;
|
|
}
|
|
function getSocialSecurityDoc($caregiver_id){
|
|
$keyType="soc_sec";
|
|
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
|
|
return $result;
|
|
}
|
|
function getMalPracticeDoc($caregiver_id){
|
|
$keyType="mal_prac";
|
|
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
|
|
return $result;
|
|
}
|
|
function getProfessionalReferenceDoc($caregiver_id){
|
|
$keyType="prof_ref";
|
|
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
|
|
return $result;
|
|
}
|
|
function getNursingLicenseDoc($caregiver_id){
|
|
$keyType="lic";
|
|
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
|
|
return $result;
|
|
}
|
|
function commonSqlToGetDocument($cg_id,$type){
|
|
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
|
|
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
|
|
$this->db->where('users_documents.userid', $cg_id);
|
|
$this->db->where('document_name.type', $type);
|
|
$this->db->where('users_documents.status', '1');
|
|
$query = $this->db->get('users_documents');
|
|
return $query->result();
|
|
|
|
}
|
|
|
|
function getDocumentsByShortCode($cg_id,$short_code){
|
|
|
|
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
|
|
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
|
|
$this->db->where('users_documents.userid', $cg_id);
|
|
$this->db->where('document_name.short_code', $short_code);
|
|
$this->db->where('users_documents.status', '1');
|
|
$query = $this->db->get('users_documents');
|
|
return $query->result();
|
|
|
|
}
|
|
|
|
function save_verification_statu($data){
|
|
$this->db->insert('acceptance_verification', $data);
|
|
return $this->db->insert_id();
|
|
}
|
|
function getVerificationStatusById($id){
|
|
$this->db->select('acceptance_verification.*');
|
|
$this->db->where('status', 1);
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$query = $this->db->get('acceptance_verification');
|
|
// _die($this->db->last_query());
|
|
return $query->result();
|
|
}
|
|
|
|
function getVerificationTabStatus($id){
|
|
$this->db->select('verification_tab.*');
|
|
$this->db->where('status',1);
|
|
$query = $this->db->get('verification_tab')->result();
|
|
// _die($this->db->last_query());
|
|
|
|
foreach ($query as $key => $value) {
|
|
$tab_type = $value->tab_type;
|
|
$vdsc = $this->db->select('drug_screen,malpractice_insurence')->where('caregiver_table_id',$id)->get('caregiver_step2')->row();
|
|
// pre($vdsc->drug_screen);
|
|
if(!empty($vdsc->drug_screen))
|
|
{
|
|
$drug_screen=json_decode($vdsc->drug_screen);
|
|
$drugScreen=$drug_screen->change_behaviour;
|
|
}
|
|
// _die($this->db->last_query());
|
|
$this->db->select('acceptance_verification.status,acceptance_verification.verification_date');
|
|
$this->db->where('acceptance_verification.status', 1);
|
|
$this->db->where('acceptance_verification.tab_type', $tab_type);
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$query1 = $this->db->get('acceptance_verification')->row();
|
|
// _die($this->db->last_query());
|
|
if($query1){
|
|
$query[$key]->verify_status = 'Verified';
|
|
$query[$key]->class_color = 'text-success';
|
|
$query[$key]->verification_date = date("d-m-Y",strtotime($query1->verification_date));
|
|
|
|
}elseif((empty($vdsc->drug_screen) || $drugScreen==0) && $tab_type=='VDSC')
|
|
{
|
|
$query[$key]->verify_status = 'NA';
|
|
$query[$key]->class_color = 'text-success';
|
|
$query[$key]->verification_date = 'NA';
|
|
|
|
|
|
}elseif(empty($vdsc->malpractice_insurence) && $tab_type=='VMINS'){
|
|
$query[$key]->verify_status = 'NA';
|
|
$query[$key]->class_color = 'text-success';
|
|
$query[$key]->verification_date = 'NA';
|
|
}
|
|
else{
|
|
$query[$key]->verify_status = 'Pending';
|
|
$query[$key]->class_color = 'text-danger';
|
|
$query[$key]->verification_date = 'Not set';
|
|
|
|
}
|
|
}
|
|
// $vdsc = $this->db->select('drug_screen')->where('caregiver_table_id',$id)->get('caregiver_step2')->row();
|
|
// if(empty($vdsc))
|
|
// {
|
|
// $query[$key]->verify_status = 'NA';
|
|
// $query[$key]->class_color = 'text-success';
|
|
// $query[$key]->verification_date = 'Not set';
|
|
// }
|
|
// _die($query);
|
|
return $query;
|
|
}
|
|
|
|
function getTuberculosis(){
|
|
$this->db->select('constant_table.*');
|
|
$this->db->where('constant_type', 'tuberculosis');
|
|
$query = $this->db->get('constant_table')->result();
|
|
return $query;
|
|
}
|
|
function saveHealthCondition($tbl, $data, $id)
|
|
{
|
|
// echo 'TABLE NAME : '.$tbl;echo $id; '<br>';
|
|
// echo '<pre>'; print_r($data);echo '<br>';die;
|
|
foreach ($data as $key => $value) {
|
|
$insert_data = array(
|
|
'caregiver_table_id' => $id,
|
|
'short_code' => $key,
|
|
'status' => $value
|
|
);
|
|
// _die($insert_data);
|
|
$this->db->select('*');
|
|
$this->db->from($tbl);
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('short_code', $key);
|
|
$query = $this->db->get()->row();
|
|
// _die($this->db->last_query());
|
|
if($query) {
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('short_code', $key);
|
|
$this->db->update($tbl, $insert_data);
|
|
}else{
|
|
$this->db->insert($tbl, $insert_data);
|
|
}
|
|
}
|
|
// return true;
|
|
// echo $this->db->last_query();echo '<br>';die;
|
|
}
|
|
function get_health_assessmentById($id){
|
|
|
|
$this->db->select('a1.*,a2.name');
|
|
$this->db->from('user_health_assessments a1');
|
|
$this->db->join('constant_table a2', 'a1.short_code=a2.short_code','left');
|
|
$this->db->where('a1.caregiver_table_id', $id);
|
|
$result = $this->db->get()->result();
|
|
foreach ($result as $condition){
|
|
$file=null;
|
|
$this->db->select('path,file_name,id');
|
|
$this->db->from('users_documents');
|
|
$this->db->where('documents_type', $condition->short_code.'_doc');
|
|
$this->db->where('user_type', 'Caregiver');
|
|
$this->db->where('userid', $id);
|
|
$this->db->where('status', 1);
|
|
$file = $this->db->get()->row();
|
|
// echo $this->db->last_query();echo '<br>';
|
|
// pre($file);
|
|
if($file){
|
|
$condition->file_name=$file->file_name;
|
|
$condition->path=$file->path;
|
|
}else{
|
|
$condition->file_name=null;
|
|
$condition->path=null;
|
|
}
|
|
}
|
|
// _die();
|
|
// pre();
|
|
return $result;
|
|
}
|
|
|
|
function updateHealthDocuments($data,$id,$phy_id){
|
|
// print_r( $data);exit;
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('id', $phy_id);
|
|
$this->db->update('user_health_assessments', $data);
|
|
}
|
|
|
|
function get_tuberculosisById($id){
|
|
|
|
$this->db->select('*');
|
|
$this->db->from('user_tuberculosis_questionnaire');
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$query = $this->db->get()->result();
|
|
|
|
return $query;
|
|
}
|
|
|
|
function savePhyAssessment($tbl, $data, $id)
|
|
{
|
|
// echo 'TABLE NAME : '.$tbl;echo $id; '<br>';
|
|
// echo '<pre>'; print_r($data);echo '<br>';die;
|
|
foreach ($data as $key => $value) {
|
|
|
|
|
|
// echo $value['status']; echo "<br>";
|
|
$insert_data = array(
|
|
'caregiver_table_id' => $id,
|
|
'short_code' => $key,
|
|
'status' => $value['status'],
|
|
'explaination' => $value['explain']
|
|
);
|
|
// _die($insert_data);
|
|
$this->db->select('*');
|
|
$this->db->from($tbl);
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('short_code', $key);
|
|
$query = $this->db->get()->row();
|
|
// _die($this->db->last_query());
|
|
if($query) {
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('short_code', $key);
|
|
$this->db->update($tbl, $insert_data);
|
|
}else{
|
|
$this->db->insert($tbl, $insert_data);
|
|
}
|
|
|
|
}
|
|
// return true;
|
|
// echo $this->db->last_query();echo '<br>';die;
|
|
}
|
|
|
|
function get_phy_dataById($id){
|
|
|
|
$short_code=[];
|
|
$status=[];
|
|
$explain_key=[];
|
|
$explain_value=[];
|
|
$this->db->select('*');
|
|
$this->db->from('user_physical_assessments');
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$query = $this->db->get()->result();
|
|
foreach ($query as $key => $value) {
|
|
array_push($short_code, $value->short_code);
|
|
array_push($status, $value->status);
|
|
array_push($explain_key, $value->short_code.'_explain');
|
|
array_push($explain_value, $value->explaination);
|
|
}
|
|
// _die($short_code);
|
|
$array1=array_combine($short_code,$status);
|
|
$array2=array_combine($explain_key,$explain_value);
|
|
$finalArrData = array_merge($array1,$array2);
|
|
// _die((object)$finalArrData);
|
|
return (object)$finalArrData;
|
|
}
|
|
|
|
function getTuberStatus($id){
|
|
|
|
$this->db->select('count(*) as count');
|
|
|
|
$this->db->from('user_tuberculosis_questionnaire');
|
|
|
|
$this->db->where('caregiver_table_id', $id);
|
|
|
|
$this->db->where('status', 1);
|
|
|
|
$query = $this->db->get()->row();
|
|
|
|
return $query;
|
|
|
|
}
|
|
|
|
function getCTypeCitizenList($short_code,$citizen_status){
|
|
$condition_type = array((int)$citizen_status, 2);
|
|
$this->db->select('*');
|
|
$this->db->where('list_type', 'c');
|
|
$this->db->where_in('condition_type', $condition_type);
|
|
if($short_code == 'american_card'){
|
|
$this->db->where('short_code !=', 'american_card_c');
|
|
}
|
|
$this->db->order_by('name');
|
|
$query = $this->db->get('master_citizenship_doc');
|
|
// _die($this->db->last_query());
|
|
return $query->result();
|
|
}
|
|
|
|
function get_phy_attestation($id){
|
|
$this->db->select('*');
|
|
$this->db->from('user_physical_assessments');
|
|
$this->db->where('caregiver_table_id', $id);
|
|
$this->db->where('status', 1);
|
|
$query = $this->db->get()->result();
|
|
return $query;
|
|
}
|
|
function getExtraDisclosureDoc($cg_id)
|
|
{
|
|
$this->db->where('userid',$cg_id);
|
|
$this->db->where('documents_type',_ADDITIONAL_PDF_DISCLOSURE_);
|
|
$this->db->from('users_documents');
|
|
$query=$this->db->get();
|
|
return $query->result();
|
|
}
|
|
function saveFingerPrintStatus($data)
|
|
{
|
|
$this->db->where('caregiver_table_id',$data['caregiver_table_id']);
|
|
$this->db->from('caregiver_finger_print_status');
|
|
$query=$this->db->get();
|
|
$rows=$query->num_rows();
|
|
if($rows>0){
|
|
$this->db->where('caregiver_table_id',$data['caregiver_table_id']);
|
|
$this->db->update('caregiver_finger_print_status', $data);
|
|
return $query->row()->id;
|
|
}else{
|
|
$this->db->insert('caregiver_finger_print_status',$data);
|
|
return $this->db->insert_id();
|
|
}
|
|
}
|
|
function updateFingerPrintStatus($fId,$docId)
|
|
{
|
|
$data['users_documents_id']=$docId;
|
|
$this->db->where('id',$fId);
|
|
$this->db->update('caregiver_finger_print_status',$data);
|
|
// pre($this->db->last_query());
|
|
}
|
|
function getFingerPrintInfo($cg_id)
|
|
{
|
|
$this->db->select('a1.*,a2.path,a2.file_name,a2.documents_type');
|
|
$this->db->from('caregiver_finger_print_status a1');
|
|
$this->db->join('users_documents a2', 'a1.users_documents_id=a2.id','left');
|
|
$this->db->where('a1.caregiver_table_id', $cg_id);
|
|
$query=$this->db->get();
|
|
$result=$query->row();
|
|
return $result;
|
|
}
|
|
|
|
function update_verification_status($data,$verification_id)
|
|
{
|
|
$this->db->where('id', $verification_id);
|
|
$this->db->update('acceptance_verification', $data);
|
|
}
|
|
function getOtherReferences2($cg_id)
|
|
{
|
|
$this->db->select('a1.*,a2.path,a2.file_name');
|
|
$this->db->from('caregiver_other_references a1');
|
|
$this->db->join('users_documents a2', 'a1.users_documents_id=a2.id','left');
|
|
$this->db->where('a1.caregiver_table_id', $cg_id);
|
|
$query=$this->db->get();
|
|
$result=$query->result();
|
|
return $result;
|
|
}
|
|
function getOtherReferences3($id)
|
|
{
|
|
$this->db->select('a1.*,a2.path,a2.file_name');
|
|
$this->db->from('caregiver_other_references a1');
|
|
$this->db->join('users_documents a2', 'a1.users_documents_id=a2.id','left');
|
|
$this->db->where('a1.id', $id);
|
|
$query=$this->db->get();
|
|
$result=$query->row();
|
|
return $result;
|
|
}
|
|
function getNPIdoc($cg_id)
|
|
{
|
|
$this->db->where('userid',$cg_id);
|
|
$this->db->where('documents_type', _DOC_NPICODE_);
|
|
$this->db->where('status', 1);
|
|
$this->db->from('users_documents');
|
|
$query=$this->db->get();
|
|
$result=$query->row();
|
|
return $result;
|
|
}
|
|
function getNotesByShortCode($cg_id,$short_code)
|
|
{
|
|
$this->db->where('userId',$cg_id);
|
|
$this->db->where('short_code',$short_code);
|
|
$this->db->where('status',1);
|
|
$this->db->from('notes');
|
|
$query=$this->db->get();
|
|
$result=$query->row();
|
|
return $result;
|
|
}
|
|
function saveNotes($data)
|
|
{
|
|
$this->db->where('userId',$data['userId']);
|
|
$this->db->where('short_code',$data['short_code']);
|
|
$this->db->where('status',$data['status']);
|
|
$this->db->from('notes');
|
|
$query=$this->db->get();
|
|
$rows=$query->num_rows();
|
|
if($rows>0){
|
|
unset($data['created_on']);
|
|
unset($data['created_by']);
|
|
$this->db->where('userId',$data['userId']);
|
|
$this->db->where('short_code',$data['short_code']);
|
|
$this->db->update('notes',$data);
|
|
}else{
|
|
$this->db->insert('notes',$data);
|
|
}
|
|
}
|
|
|
|
function get_concent_signature($caregiver_id){
|
|
$this->db->select('concent_signature')->from('caregiver_step2');
|
|
$this->db->where('caregiver_step2.caregiver_table_id', $caregiver_id);
|
|
$return = $this->db->get()->row();
|
|
}
|
|
|
|
function get_caregiver_basic_details_by_email($email){
|
|
$this->db->select('caregiver.id as id,fname,mid_name,lname,email,qualification_type')->from('caregiver');
|
|
$this->db->where('caregiver.email', $email);
|
|
return $this->db->get()->row();
|
|
}
|
|
|
|
function get_tab_status($id){
|
|
$caregiverData=$this->getNurseById($id);
|
|
$from_tab_status_pctg=json_decode($caregiverData->from_tab_status_pctg);
|
|
//pre($caregiverData);
|
|
//pre($from_tab_status_pctg);
|
|
// 0 = Locked
|
|
// 1 = opend
|
|
// 2 = completed
|
|
if($from_tab_status_pctg->form1!=0){
|
|
$tabstatus['basic']=2;
|
|
}else{
|
|
$tabstatus['basic']=1;
|
|
}
|
|
|
|
if($from_tab_status_pctg->form2!=0 && $tabstatus['basic']==2){
|
|
$tabstatus['exp']=2;
|
|
}else if($tabstatus['basic']==2){
|
|
$tabstatus['exp']=1;
|
|
}else{
|
|
$tabstatus['exp']=0;
|
|
}
|
|
|
|
|
|
if($from_tab_status_pctg->form4!=0 && $tabstatus['exp']==2){
|
|
$tabstatus['emp']=2;
|
|
}else if($tabstatus['exp']==2){
|
|
$tabstatus['emp']=1;
|
|
}else{
|
|
$tabstatus['emp']=0;
|
|
}
|
|
|
|
if($from_tab_status_pctg->form5!=0 && $tabstatus['emp']==2){
|
|
$tabstatus['phy']=2;
|
|
}else if($tabstatus['emp']==2){
|
|
$tabstatus['phy']=1;
|
|
}else{
|
|
$tabstatus['phy']=0;
|
|
}
|
|
|
|
if($caregiverData->qualification_type==4){
|
|
$doc_per=24;
|
|
}else if($caregiverData->qualification_type==5){
|
|
$doc_per=14;
|
|
}else if($caregiverData->qualification_type==6 || $caregiverData->qualification_type==7){
|
|
$doc_per=17;
|
|
}
|
|
|
|
//pre($doc_per);
|
|
if($from_tab_status_pctg->form11>=$doc_per && $tabstatus['phy']=2){
|
|
$tabstatus['doc']=2;
|
|
}else if($tabstatus['phy']==2){
|
|
$tabstatus['doc']=1;
|
|
}else{
|
|
$tabstatus['doc']=0;
|
|
}
|
|
|
|
if($from_tab_status_pctg->submited_for_verification=='yes' && $tabstatus['doc']==2){
|
|
$tabstatus['dis']=2;
|
|
}else if($tabstatus['doc']==2){
|
|
$tabstatus['dis']=1;
|
|
}else{
|
|
$tabstatus['dis']=0;
|
|
}
|
|
return $tabstatus;
|
|
}
|
|
|
|
function applicationPercentageCalculator($caregiver_id){
|
|
$caregiverData=$this->getNurseById($caregiver_id);
|
|
$from_tab_status_pctg=json_decode($caregiverData->from_tab_status_pctg);
|
|
// $uploaded_doc=$this->CargiverDocumentsUploaded($caregiverData->ion_user_id);
|
|
$this->db->select('documents_type');
|
|
$this->db->where('userid', $caregiver_id);
|
|
$this->db->where('user_type', 'Caregiver');
|
|
$this->db->where('status', 1);
|
|
$result = $this->db->get('users_documents')->result();
|
|
// pre('Doc Percentage Calculator');//die;
|
|
foreach ($result as $value) {
|
|
$uploaded_doc[]=$value->documents_type;
|
|
}
|
|
$percentage=0;
|
|
if($caregiverData->qualification_type==4 || $caregiverData->qualification_type==5){
|
|
$basic_documents=array('PHO','CTZ1','SSC','RSM','REF','DPR','MIC');
|
|
$medical_documents=array('EHA','PPD','RRM','CPX','TDAP','FLV','CVD');//'DSC', 'TNS','DIP','RBL','RBO','MUM',not added now
|
|
$caregiverData->qualification_type==4?$licence_documents=array('LIC','CPR') : $licence_documents=array('LIC');
|
|
$uploaded_basic_doc=array_intersect($basic_documents,$uploaded_doc);
|
|
$uploaded_medical_documents=array_intersect($medical_documents,$uploaded_doc);
|
|
$uploaded_licence_documents=array_intersect($licence_documents,$uploaded_doc);
|
|
if(count($basic_documents)==count($uploaded_basic_doc)){ $basic_per=8; }else{
|
|
$basic_per=0;
|
|
//echo 'uploaded basic'; pre(count($uploaded_basic_doc));
|
|
// echo 'required basic'; pre(count($basic_documents));
|
|
// pre(array_diff($uploaded_basic_doc,$basic_documents));
|
|
// echo json_encode($uploaded_basic_doc);
|
|
// echo json_encode($basic_documents);
|
|
}
|
|
if(count($medical_documents)==count($uploaded_medical_documents)){ $medical_per=8; }else{
|
|
$medical_per=0;
|
|
// echo 'uploaded medical'; pre(count($uploaded_medical_documents));
|
|
// echo 'required medical'; pre(count($medical_documents));
|
|
// pre(array_diff($uploaded_medical_documents,$medical_documents));
|
|
// echo json_encode($uploaded_medical_documents);
|
|
// echo json_encode($medical_documents);
|
|
}
|
|
if(count($licence_documents)==count($uploaded_licence_documents)){ $lic_per=8; }else{
|
|
$lic_per=0;
|
|
// echo 'uploaded lic'; pre(count($uploaded_licence_documents));
|
|
// echo 'required lic'; pre(count($licence_documents));
|
|
// pre(array_diff($uploaded_licence_documents,$licence_documents));
|
|
}
|
|
$percentage=$basic_per+$medical_per+$lic_per;
|
|
if(($percentage==24) && ($from_tab_status_pctg->form11<24)){
|
|
$from_tab_status_pctg->form11=24;
|
|
$updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
|
|
$this->db->where('id', $caregiver_id);
|
|
$this->db->update('caregiver', $updatedata);
|
|
// echo $this->db->last_query();
|
|
}
|
|
}
|
|
if($caregiverData->qualification_type==6 || $caregiverData->qualification_type==7){
|
|
$basic_documents=array('PHO','CTZ1','SSC','RSM','REF','DPR','102','103','RRF','PCA');
|
|
$medical_documents=array('EHA','PPD','RRM','CPX','TDAP','FLV','CVD');//'DSC', 'TNS','DIP','RBL','RBO','MUM',not added now
|
|
$licence_documents=array('LIC');
|
|
$uploaded_basic_doc=array_intersect($basic_documents,$uploaded_doc);
|
|
$uploaded_medical_documents=array_intersect($medical_documents,$uploaded_doc);
|
|
$uploaded_licence_documents=array_intersect($licence_documents,$uploaded_doc);
|
|
if(count($basic_documents)==count($uploaded_basic_doc)){ $basic_per=9; }else{
|
|
$basic_per=0;
|
|
}
|
|
if(count($medical_documents)==count($uploaded_medical_documents)){ $medical_per=8; }else{
|
|
$medical_per=0;
|
|
}
|
|
if(count($licence_documents)==count($uploaded_licence_documents)){ $lic_per=8; }else{
|
|
$lic_per=0;
|
|
}
|
|
$percentage=$basic_per+$medical_per+$lic_per;
|
|
if(($percentage==25) && ($from_tab_status_pctg->form11<25)){
|
|
$from_tab_status_pctg->form11=25;
|
|
$updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
|
|
$this->db->where('id', $caregiver_id);
|
|
$this->db->update('caregiver', $updatedata);
|
|
// echo $this->db->last_query();
|
|
}
|
|
}
|
|
if($caregiverData->qualification_type==8){
|
|
$basic_documents=array('PHO','CTZ1','SSC','RSM','REF','DPR');
|
|
$medical_documents=array('EHA','PPD','RRM','CPX','TDAP','FLV','CVD');//'DSC', 'TNS','DIP','RBL','RBO','MUM',not added now
|
|
$licence_documents=array('LIC');
|
|
$uploaded_basic_doc=array_intersect($basic_documents,$uploaded_doc);
|
|
$uploaded_medical_documents=array_intersect($medical_documents,$uploaded_doc);
|
|
$uploaded_licence_documents=array_intersect($licence_documents,$uploaded_doc);
|
|
|
|
if(count($basic_documents)==count($uploaded_basic_doc)){ $basic_per=8; }else{
|
|
$basic_per=0;
|
|
}
|
|
if(count($medical_documents)==count($uploaded_medical_documents)){ $medical_per=8; }else{
|
|
$medical_per=0;
|
|
}
|
|
if(count($licence_documents)==count($uploaded_licence_documents)){ $lic_per=8; }else{
|
|
$lic_per=0;
|
|
}
|
|
$percentage=$basic_per+$medical_per+$lic_per;
|
|
if(($percentage==24) && ($from_tab_status_pctg->form11<24)){
|
|
$from_tab_status_pctg->form11=24;
|
|
$updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
|
|
$this->db->where('id', $caregiver_id);
|
|
$this->db->update('caregiver', $updatedata);
|
|
// echo $this->db->last_query();
|
|
}
|
|
}
|
|
// echo 'BASIC:'.$basic_per;
|
|
// echo 'Medical:'.$medical_per;
|
|
// echo 'License:'.$lic_per;
|
|
// pre($percentage);
|
|
// pre($from_tab_status_pctg);
|
|
// die;
|
|
// if(($percentage==24) && ($from_tab_status_pctg->form11<24)){
|
|
// $from_tab_status_pctg->form11=24;
|
|
// $updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
|
|
// $this->db->where('id', $caregiver_id);
|
|
// $this->db->update('caregiver', $updatedata);
|
|
// // echo $this->db->last_query();
|
|
// }
|
|
}
|
|
|
|
function getCaregiverDisclosureInitialPdf($ion_id){
|
|
$cg_data=$this->getNurseByIonId($ion_id);
|
|
$cg_id=$cg_data->caregiver_table_id;
|
|
|
|
#creating specific folder
|
|
$folder_name='USER_'.str_pad($ion_id, 6, "0", STR_PAD_LEFT);
|
|
if (!is_dir('uploads/Documents/'.$folder_name)) {
|
|
mkdir('./uploads/Documents/' . $folder_name, 0777, TRUE);
|
|
}
|
|
$pdfdata=$this->getRequireDataForPdfFillUp($cg_id);
|
|
$res=$this->Application_of_employment($ion_id,$cg_id,$pdfdata);
|
|
$res2=$this->updateEditablePdfs($cg_id,$extract="");
|
|
}
|
|
|
|
public function getRequireDataForPdfFillUp($id)
|
|
{
|
|
if($id != '')
|
|
{
|
|
$datas = $this->getNurseById($id);
|
|
$data['cg'] = $datas;
|
|
$data['eha'] = json_decode($datas->emp_health_assesment);
|
|
$data['school'] = json_decode($datas->educationBackground);
|
|
$data['emp'] = json_decode($datas->employementHistory);
|
|
$caregiver_type=$data['cg']->qualification_type;
|
|
$caregiverId=$id;
|
|
$YearExperience=$data['cg']->years_of_exp;
|
|
$data['expTab'] = $this->getExperienceDetailsForPdf($caregiver_type,$caregiverId,$YearExperience);
|
|
|
|
$data['emg_contact'] = json_decode($datas->Emergency_Contact_Address);
|
|
$emg_relation_id = $datas->Emergency_Contact_Relationship;
|
|
$data['referral_source_name'] = $this->getReferralSourceName($data['cg']->referral_source);
|
|
$data['emg_relation_name'] = $this->getRelationshipName($emg_relation_id);
|
|
$data['employementHistory2'] = json_decode($datas->employementHistory2);
|
|
$data['demographics_exp'] = $this->getDemographicExp(json_decode($datas->demographics_exp));
|
|
$data['website_setting'] = $this->get_website_setting();
|
|
// _die($data['expTab']);
|
|
}
|
|
$data['tick'] = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAaQAAAGkBcaGY2AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABzSURBVDiNzdCxDYJgEAbQxwK6g2ED7QyTWFKxhQPQso4tIzAAG0AN2GhiYfLjmaDXv+++O3492Rf2hGMUFxjRRfAZA3rk/4EbXBL4efPbzTdMKCMYdmgxo1pbe03Ixw/bP0Im1KnaqSZLBL82ueIQwdvPHdIVIU3fgaM4AAAAAElFTkSuQmCC';
|
|
$data['blackSqr'] = 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3RDkyMjJENTRBNjExMUVCOTQyQ0ExNkI5Q0I2QzhBRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3RDkyMjJENjRBNjExMUVCOTQyQ0ExNkI5Q0I2QzhBRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdEOTIyMkQzNEE2MTExRUI5NDJDQTE2QjlDQjZDOEFEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdEOTIyMkQ0NEE2MTExRUI5NDJDQTE2QjlDQjZDOEFEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAA0AwERAAIRAQMRAf/EAHcAAQEBAQEAAAAAAAAAAAAAAAAGBwEFAQEAAAAAAAAAAAAAAAAAAAAAEAABAAIJEwALAAAAAAAAAAAABAcBEcECAxQVBhYhMUHREhOTw3SkBVZmhhc3GChIgZEiMkODZEU2RicRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AMvWktFYWj1h6fQ0LT6Wjo0Alv3kFBQb+5YevajLQEtxhWfrMn4Zm0A4wrP1mT8MzaAcYVn6zJ+FZtAOMKz9Zk/DM2gOcYFns/syfZ+KzZYaA2Snc8umCXZbSZYpBF4/fWb5e2vdbarWQMbXFzPnJlsI4BHAAAAABuHiHvPiQIFcXNCcmWwjgEaAAAAAG4eIe8+JAgFxcz5yZbCOARwAAAAAbh4ibz4kCAXFzPnJlsI4BHAAAAABuHiJvPiQIFcXM+cmWwjgEaAAAAOgbg0z0itNVaT1vkge0sLpkptpmXKTStGX0di0WvN8s3F17TQE72k7WZqA7SdrM1AdpO1magO0nazNQOvekmr+V1rMVcA03+FcAPvlCJa+nj0cuPVctekD/9k=';
|
|
$data['blackkDotWithQr'] = 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Q0JDMDhGNjRBNjExMUVCQUI4QkVBNzhFQkNCRjFBMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Q0JDMDhGNzRBNjExMUVCQUI4QkVBNzhFQkNCRjFBMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDQkMwOEY0NEE2MTExRUJBQjhCRUE3OEVCQ0JGMUExIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDQkMwOEY1NEE2MTExRUJBQjhCRUE3OEVCQ0JGMUExIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJ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';
|
|
$data['logo'] = 'data:image/png;base64,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UmVhZHlxyWU8AAADJmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkZEMjhGMUE0NTA4MTFFQkI0MTZCNDY3NzE1MkRERUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkZEMjhGMUI0NTA4MTFFQkI0MTZCNDY3NzE1MkRERUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRkQyOEYxODQ1MDgxMUVCQjQxNkI0Njc3MTUyRERFQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRkQyOEYxOTQ1MDgxMUVCQjQxNkI0Njc3MTUyRERFQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvV9Q/kAADUcSURBVHja7N1nrG1VucbxxXGLiIIKykFRUOy9Y+9d7CK2WGLUaGJiNNFPxnj9on7SxC+KxoK9Yq9YsPfeKxZEUAFRAfGK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';
|
|
|
|
$signData=$this->getSignatureInfo($id);
|
|
foreach($signData as $sign)
|
|
{
|
|
$type=$sign->document_details;
|
|
$signature_date=date("m-d-Y h:i A",strtotime($sign->signature_date));
|
|
$sData=[
|
|
"sig"=>$sign->signature,
|
|
'date'=>$signature_date
|
|
];
|
|
$data[$type]=(object)$sData;
|
|
|
|
}
|
|
return $data;
|
|
}
|
|
public function getExperienceDetailsForPdf($type,$id,$year_experience)
|
|
{
|
|
$caregiver_type = $type;
|
|
$caregiverId=$id;
|
|
$YearExperience=$year_experience;
|
|
$exprience_head=$this->getServiceHeadByType2($caregiver_type);
|
|
foreach($exprience_head as $key=>$exp_head){
|
|
$service_head_id = $exp_head->service_head_id;
|
|
$getCareExp = $this->getCareExp($caregiver_type,$service_head_id,$caregiverId);
|
|
if(!empty($getCareExp)){
|
|
$exprience_head[$key]->caregiver_experience=$getCareExp;
|
|
}else{
|
|
unset($exprience_head[$key]);
|
|
}
|
|
|
|
}
|
|
// return $exprience_head;
|
|
return array_values($exprience_head); //re-indexing array
|
|
|
|
}
|
|
public function getDemographicExp($demographics_exp)
|
|
{
|
|
$demographics=[];
|
|
$b=[];
|
|
foreach($demographics_exp as $key=>$val){
|
|
$exp_id = $key;
|
|
$exp_value = $val;
|
|
$service_name = $this->demographics_exp_byId($exp_id);
|
|
$b['experience_id']=$exp_id;
|
|
$b['service_name']=$service_name->experience_label;
|
|
$b['experience_value']=$exp_value;
|
|
array_push($demographics,$b);
|
|
}
|
|
return $demographics;
|
|
}
|
|
|
|
#function for Generating pdfs
|
|
public function Application_of_employment($ion_id,$cg_id,$data)
|
|
{
|
|
$experience=$data['cg']->years_of_exp;
|
|
$cg_typeData=$this->getQualificationEmployeeType($cg_id);
|
|
$type=$this->typeOfCaregiver($cg_typeData->qualification_type,$cg_typeData->employee_type);
|
|
|
|
if($type=="D"){
|
|
if($experience>0){
|
|
$perPage=$this->experiencePageSize($cg_id);
|
|
if($perPage>0 && $perPage<=1){
|
|
$end=5;
|
|
}if($perPage>1 && $perPage<=2){
|
|
$end=6;
|
|
}if($perPage>2 && $perPage<=3){
|
|
$end=7;
|
|
}if($perPage>3 && $perPage<=4){
|
|
$end=8;
|
|
}if($perPage>4 && $perPage<=5){
|
|
$end=9;
|
|
}if($perPage>5 && $perPage<=6){
|
|
$end=10;
|
|
}
|
|
$end2=($end+1);
|
|
$end3=($end2+1);
|
|
$end4=($end3+1);
|
|
$end5=($end4+1);
|
|
|
|
$pdf1=[
|
|
"slug"=>"APPLICATION_EMPLOYMENT_",
|
|
// "start"=>1,
|
|
// "end"=>6
|
|
"start"=>1,
|
|
"end"=>$end
|
|
];
|
|
$pdf2=[
|
|
"slug"=>"DOH_CHRC102_",
|
|
// "start"=>7,
|
|
// "end"=>null
|
|
"start"=>$end2,
|
|
"end"=>null
|
|
];
|
|
$pdf3=[
|
|
"slug"=>"DOH_CHRC103_",
|
|
// "start"=>8,
|
|
// "end"=>9
|
|
"start"=>$end3,
|
|
"end"=>$end4
|
|
];
|
|
$pdf4=[
|
|
"slug"=>"REGISTRY_RELEASE_",
|
|
// "start"=>10,
|
|
// "end"=>null
|
|
"start"=>$end5,
|
|
"end"=>null
|
|
];
|
|
#declaring files as pages for creating those into a single pdf
|
|
$data['pages']=[
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
|
|
'WECURO_HHA_APPLICATION_4pg',
|
|
'WECURO_HHA_APPLICATION_3pg',
|
|
'Employee_Health_2.php',
|
|
// 'WECURO_HHA_APPLICATION_6pg',
|
|
'NYDOH_CHRC_102_FORM2_2',
|
|
'NYDOH_103_FORM','NYDOH_103_FORM_2nd',
|
|
'HOME_CARE_REGISTRY_RELEASE_FORM'
|
|
];
|
|
#declaring files as pages for creating those into a single pdf
|
|
|
|
}else{
|
|
$pdf1=[
|
|
"slug"=>"APPLICATION_EMPLOYMENT_",
|
|
"start"=>1,
|
|
"end"=>4
|
|
];
|
|
$pdf2=[
|
|
"slug"=>"DOH_CHRC102_",
|
|
"start"=>5,
|
|
"end"=>null
|
|
];
|
|
$pdf3=[
|
|
"slug"=>"DOH_CHRC103_",
|
|
"start"=>6,
|
|
"end"=>7
|
|
];
|
|
$pdf4=[
|
|
"slug"=>"REGISTRY_RELEASE_",
|
|
"start"=>8,
|
|
"end"=>null
|
|
];
|
|
#declaring files as pages for creating those into a single pdf
|
|
$data['pages']=[
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
|
|
// 'WECURO_HHA_APPLICATION_4pg',
|
|
'WECURO_HHA_APPLICATION_3pg',
|
|
'Employee_Health_2.php',
|
|
// 'WECURO_HHA_APPLICATION_6pg',
|
|
'NYDOH_CHRC_102_FORM2_2',
|
|
'NYDOH_103_FORM','NYDOH_103_FORM_2nd',
|
|
'HOME_CARE_REGISTRY_RELEASE_FORM'
|
|
];
|
|
#declaring files as pages for creating those into a single pdf
|
|
}
|
|
$cred=[$pdf1,$pdf2,$pdf3,$pdf4];
|
|
}else{
|
|
if($experience>0){
|
|
$pdf1=[
|
|
"slug"=>"APPLICATION_EMPLOYMENT_",
|
|
"start"=>1,
|
|
"end"=>$end
|
|
];
|
|
$data['pages']=[
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
|
|
'WECURO_HHA_APPLICATION_4pg',
|
|
'WECURO_HHA_APPLICATION_3pg',
|
|
'Employee_Health_2.php',
|
|
// 'WECURO_HHA_APPLICATION_6pg',
|
|
];
|
|
}else{
|
|
$pdf1=[
|
|
"slug"=>"APPLICATION_EMPLOYMENT_",
|
|
"start"=>1,
|
|
"end"=>end
|
|
];
|
|
$data['pages']=[
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
|
|
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
|
|
// 'WECURO_HHA_APPLICATION_4pg',
|
|
'WECURO_HHA_APPLICATION_3pg',
|
|
'Employee_Health_2.php',
|
|
// 'WECURO_HHA_APPLICATION_6pg',
|
|
];
|
|
}
|
|
$cred=[$pdf1];
|
|
}
|
|
|
|
#creating specific folder
|
|
$folder_name='USER_'.str_pad($ion_id, 6, "0", STR_PAD_LEFT);
|
|
if (!is_dir('uploads/Documents/'.$folder_name)) {
|
|
mkdir('./uploads/Documents/' . $folder_name, 0777, TRUE);
|
|
}
|
|
#creating specific folder
|
|
|
|
#file path for creating temp files and original files
|
|
$path['filePath']="uploads/Documents/".$folder_name."/";
|
|
#file path for creating temp files and original files
|
|
|
|
#filename
|
|
$path['fileName']=str_pad($ion_id, 6,"0",STR_PAD_LEFT).".pdf";
|
|
#filename
|
|
|
|
$response=generate_pdf_and_save(array("forms_pdf/generate_pdf_for_save"),$data,$path,$cred);
|
|
return $response;
|
|
}
|
|
#function for Generating pdfs
|
|
|
|
#type of caregiver
|
|
public function typeOfCaregiver($caregiver_type,$employment_type)
|
|
{
|
|
$q=$caregiver_type;
|
|
$e=$employment_type;
|
|
|
|
if(($q=="4" || $q=="5" || $q=="8") && $e=="contrator"){
|
|
$type="A";
|
|
}
|
|
if(($q=="6" || $q=="7") && $e=="contrator"){
|
|
$type="B";
|
|
}
|
|
if(($q=="4" || $q=="5" || $q=="8") && $e=="inhouse"){
|
|
$type="C";
|
|
}
|
|
if(($q=="6" || $q=="7") && $e=="inhouse"){
|
|
$type="D";
|
|
}
|
|
return $type;
|
|
}
|
|
#type of caregiver
|
|
|
|
#finding per page calculation for type D caregiver
|
|
public function experiencePageSize($id)
|
|
{
|
|
// $id=427;
|
|
$datas=$this->getNurseById($id);
|
|
$data['cg'] = $datas;
|
|
$caregiver_type=$data['cg']->qualification_type;
|
|
$caregiverId=$id;
|
|
$YearExperience=$data['cg']->years_of_exp;
|
|
$data['expTab'] = $this->getExperienceDetailsForPdf($caregiver_type,$caregiverId,$YearExperience);
|
|
$data['demographics_exp'] = $this->getDemographicExp(json_decode($datas->demographics_exp));
|
|
$i=0;
|
|
foreach($data['expTab'] as $expTab){
|
|
$i++;
|
|
foreach($expTab->caregiver_experience as $exp){
|
|
$i++;
|
|
}
|
|
}
|
|
foreach($data['demographics_exp'] as $dmg){
|
|
$i++;
|
|
}
|
|
$rows=($i+1);
|
|
$perPage=($rows/25);
|
|
return $perPage;
|
|
// pre($perPage);
|
|
}
|
|
#finding per page calculation for type D caregiver
|
|
|
|
#create pdfs(from editable pdfs using pdftk)for the very first time and
|
|
#also updation with every click on the disclosure&signature tab
|
|
public function updateEditablePdfs($cg_id,$extract)
|
|
{
|
|
// $cg_id=427;
|
|
$cg_typeData=$this->getQualificationEmployeeType($cg_id);
|
|
$type=$this->typeOfCaregiver($cg_typeData->qualification_type,$cg_typeData->employee_type);
|
|
$sigDatas=$this->CaregiverDashboard_model->getDocumentSignatureByCgId($cg_id);
|
|
if($extract=="AuthRelease"){
|
|
$doc=[
|
|
"AuthRelease"
|
|
];
|
|
}
|
|
if($extract==""){
|
|
if($type=="A"){
|
|
$doc=[
|
|
// "AuthRelease",
|
|
"ContractorAgreement",
|
|
"BackgroundCheck",
|
|
"iNineForm",
|
|
"wNineForm",
|
|
"DirectDiposit"
|
|
];
|
|
}if($type=="B"){
|
|
$doc=[
|
|
// "AuthRelease",
|
|
"ContractorAgreement",
|
|
"BackgroundCheck",
|
|
"iNineForm",
|
|
"wNineForm",
|
|
"DirectDiposit"
|
|
];
|
|
}if($type=="C"){
|
|
$doc=[
|
|
// "AuthRelease",
|
|
// "ContractorAgreement",
|
|
"BackgroundCheck",
|
|
"iNineForm",
|
|
// "wNineForm",
|
|
"DirectDiposit"
|
|
];
|
|
}if($type=="D"){
|
|
$doc=[
|
|
// "AuthRelease",
|
|
// "ContractorAgreement",
|
|
"BackgroundCheck",
|
|
"iNineForm",
|
|
// "wNineForm",
|
|
"DirectDiposit",
|
|
"Doh102",
|
|
"Doh103",
|
|
"RegistryRelease"
|
|
];
|
|
}
|
|
}
|
|
$doc2=[];
|
|
$len=count($doc);
|
|
for($i=0;$i<10;$i++){
|
|
$data=array();
|
|
if(in_array($sigDatas[$i]->document_details,$doc)){
|
|
$data=array();
|
|
$data['document_details']=$sigDatas[$i]->document_details;
|
|
$data['document_html']=$sigDatas[$i]->document_html;
|
|
$data['caregiver_id']=$sigDatas[$i]->caregiver_id;
|
|
$data['signature']=$sigDatas[$i]->signature;
|
|
$data['signature_date']=$sigDatas[$i]->signature_date;
|
|
$data['signature_type']=$sigDatas[$i]->signature_type;
|
|
if($type=="D"){
|
|
$data['status']="0";
|
|
}else{
|
|
$data['status']="1";
|
|
}
|
|
$doc2[]=$data['document_details'];
|
|
// pre($data);
|
|
$response=$this->pdfGeneration($data,$concentStatus="0");
|
|
}
|
|
}
|
|
$doc3=array_diff($doc,$doc2);
|
|
foreach($doc3 as $d){
|
|
$data=array();
|
|
$data['document_details']=$d;
|
|
$data['document_html']="";
|
|
$data['caregiver_id']=$cg_id;
|
|
$data['signature']="";
|
|
$data['signature_date']="";
|
|
$data['signature_type']="";
|
|
if($type=="D"){
|
|
$data['status']="0";
|
|
}else{
|
|
$data['status']="1";
|
|
}
|
|
// pre($data);
|
|
$response=$this->pdfGeneration($data,$concentStatus="0");
|
|
}
|
|
// die();
|
|
return $response;
|
|
|
|
}
|
|
#create pdfs(from editable pdfs using pdftk)for the very first time and
|
|
#also updation with every click on the disclosure&signature tab
|
|
|
|
|
|
//Caregiver Application Percentage Calculation Start********************
|
|
function updateCaregiverApplicationPercentage($id){
|
|
// echo 'updateCaregiverApplicationPercentage'.$id;
|
|
$cg_data=$this->getNurseById($id);
|
|
$preferancesData=$this->getShiftPref($id);
|
|
$health_assessment=$this->get_health_assessmentById($id);
|
|
$tuberculosis=$this->get_tuberculosisById($id);
|
|
if(count($preferancesData)>0) $cg_data->preferancesData=$preferancesData; else $cg_data->preferancesData=null;
|
|
if(count($health_assessment)>0) $cg_data->health_assessment=$health_assessment; else $cg_data->health_assessment=null;
|
|
if(count($tuberculosis)>0) $cg_data->tuberculosis=$tuberculosis; else $cg_data->tuberculosis=null;
|
|
$cg_data=objToArray($cg_data);
|
|
$percentage_Obj=json_decode($cg_data['from_tab_status_pctg']);
|
|
// pre($percentage_Obj);
|
|
// pre($cg_data);
|
|
// die;
|
|
//UPDATE BASIC TAB Percentage Start
|
|
$basic_tab_required=['id','ion_user_id','caregiver_id','fname','lname','email','qualification_type','phone','gender','dob','country_of_birth','ethnicity','soc_sec','primary_langualge','referral_source','employee_type','address1','state1','county1','city1','zipcode1','citizen','position_applied','availability_borough','preferancesData','Emergency_Contact_Name','Emergency_Contact_Relationship','Emergency_Contact_Telephone','Emergency_Contact_Address'];
|
|
$basic_tab_required_pending=0;
|
|
foreach ($basic_tab_required as $key) {
|
|
if($cg_data[$key]==null || $cg_data[$key]==''){
|
|
// echo '******************BASIC***************<br>';
|
|
// echo $key.'<br>';
|
|
$basic_tab_required_pending++;
|
|
}
|
|
}
|
|
if($basic_tab_required_pending==0){
|
|
if($cg_data['qualification_type']==4){
|
|
$percentage_Obj->form1=21;
|
|
}else if($cg_data['qualification_type']==6 || $cg_data['qualification_type']==7){
|
|
$percentage_Obj->form1=22;
|
|
}else{
|
|
$percentage_Obj->form1=23;
|
|
}
|
|
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver', $update);
|
|
unset($update);
|
|
}
|
|
//UPDATE BASIC TAB Percentage END
|
|
|
|
//UPDATE Exp & Skill Percentage Start
|
|
$exp_skill_tab_required=['id','ion_user_id','years_of_exp'];
|
|
$exp_skill_tab_required_pending=0;
|
|
foreach ($exp_skill_tab_required as $key) {
|
|
if($cg_data[$key]==null || $cg_data[$key]==''){
|
|
// echo '******************Exp & Skill***************<br>';
|
|
// echo $key.'<br>';
|
|
$exp_skill_tab_required_pending++;
|
|
}
|
|
}
|
|
if($exp_skill_tab_required_pending==0){
|
|
$percentage_Obj->form2=20;
|
|
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver', $update);
|
|
unset($update);
|
|
}
|
|
//UPDATE Exp & Skill Percentage END
|
|
|
|
//UPDATE Emp & Edu Percentage Start
|
|
$emp_edu_tab_required=['employementHistory', 'Profesonal_References_Name', 'Profesonal_References_Address', 'Profesonal_References_Telephone', 'nursing_license_type','educationBackground', 'employementHistory2',];
|
|
$emp_edu_tab_required_pending=0;
|
|
foreach ($emp_edu_tab_required as $key) {
|
|
if($cg_data[$key]==null || $cg_data[$key]==''){
|
|
// echo '******************Emp & Edu***************<br>';
|
|
// echo $key.'<br>';
|
|
$emp_edu_tab_required_pending++;
|
|
}
|
|
}
|
|
if($emp_edu_tab_required_pending==0){
|
|
$percentage_Obj->form4=15;
|
|
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver', $update);
|
|
unset($update);
|
|
}
|
|
//UPDATE Emp & Edu Percentage END
|
|
|
|
//UPDATE health & Physical Percentage Start
|
|
$health_phy_tab_required=['health_assessment','tuberculosis','hepatatis_vaccine','positive_ppd','under_care_physician','drug_screen'];
|
|
$health_phy_tab_required_pending=0;
|
|
foreach ($health_phy_tab_required as $key) {
|
|
if($cg_data[$key]==null || $cg_data[$key]==''){
|
|
// echo '******************health & Physical***************<br>';
|
|
// echo $key.'<br>';
|
|
$health_phy_tab_required_pending++;
|
|
}
|
|
}
|
|
if($health_phy_tab_required_pending==0){
|
|
$percentage_Obj->form5=20;
|
|
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
|
|
$this->db->where('id', $id);
|
|
$this->db->update('caregiver', $update);
|
|
unset($update);
|
|
}
|
|
//UPDATE health & Physical Percentage END
|
|
|
|
//UPDATE Documents Upload Percentage Start
|
|
$this->applicationPercentageCalculator($id);
|
|
//UPDATE Documents Upload Percentage END
|
|
|
|
}
|
|
//Caregiver Application Percentage Calculation END ********************
|
|
|
|
function model_get_available_caregivers($data){
|
|
try{
|
|
/*Available Caregivers
|
|
| 1. fetch caregivers based on their preferred time slots.
|
|
| 2. Apply basic filter:
|
|
| a. Caregivers without any schedule for the day:
|
|
| b. Caregivers with declined schedules:
|
|
| c. Caregivers with unconfirmed schedules and current time greater than scheduled end time:
|
|
| 3. Apply Advance filter:
|
|
| a. open cases required service types.
|
|
| b. open cases language preferrence.
|
|
| c. open cases location distance.
|
|
| d. open cases required Service Activity/Therapy Needed.
|
|
*/
|
|
|
|
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
|
|
$start=isset($data['start'])?(0+(int)($data['start'])):0;
|
|
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
|
|
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
|
|
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
|
|
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
|
|
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
|
|
|
|
/*open cases*/
|
|
$this->db->distinct();
|
|
$this->db->select('p.level_of_service,p.primary_language,p.service_ids');
|
|
$this->db->from('patient_details p');
|
|
$this->db->join('caregiver_schedule cs', 'p.id = cs.patient_id', 'left');
|
|
$this->db->join('caregiver_patient_clock_in_out cio', 'cs.id = cio.schedule_id', 'left');
|
|
$this->db->where('p.active_status', 1);
|
|
$this->db->group_start();
|
|
$this->db->where('(p.referral_type = "New" AND cs.patient_id IS NULL)');
|
|
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Unconfirmed" AND NOW() > cs.end)');
|
|
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Accepted" AND NOW() > cs.end AND cio.schedule_id IS NULL)');
|
|
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Declined")');
|
|
$this->db->group_end();
|
|
// $this->db->get_compiled_select();
|
|
$openCases=$this->db->get()->result_array();
|
|
$service_types_arr=array_unique(array_column($openCases,'level_of_service'));
|
|
$service_ids_arr=array_unique(array_column($openCases,'service_ids'));
|
|
$primary_language_ids_arr=array_unique(
|
|
array_merge(
|
|
...array_map(function($item) {
|
|
return explode(',', $item['primary_language']);
|
|
}, $openCases)
|
|
)
|
|
);
|
|
|
|
if(count($primary_language_ids_arr)>0){
|
|
$this->db->distinct();
|
|
$this->db->select('ml.*');
|
|
$this->db->from('master_language ml');
|
|
$this->db->where_in('ml.id', $primary_language_ids_arr);
|
|
$masterLanguage=$this->db->get()->result_array();
|
|
$primary_language_arr=array_unique(array_column($masterLanguage,'name'));
|
|
}else{
|
|
$primary_language_arr=[];
|
|
}
|
|
/*open cases*/
|
|
|
|
/*avl caregivers*/
|
|
#main-query
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
'SQL_CALC_FOUND_ROWS
|
|
c.id,
|
|
c.fname,
|
|
c.lname,
|
|
CONCAT(c.fname, " ",c.lname) as name,
|
|
c.qualification_type,
|
|
mcs.name AS service_type,
|
|
GROUP_CONCAT(DISTINCT ce.experience_id) AS experience_ids,
|
|
c.email,
|
|
c.phone,
|
|
c.primary_langualge,
|
|
c.gender,
|
|
c.city1 AS main_city,
|
|
c.zipcode1 AS main_zipcode',false
|
|
);
|
|
$this->db->from('caregiver c');
|
|
$this->db->join('caregiver_schedule cs', 'c.id = cs.caregiver_id', 'left');
|
|
$this->db->join('master_cg_skills mcs', 'c.qualification_type = mcs.id', 'left');
|
|
$this->db->join('schedule_preferences sp', 'c.id = sp.nurse_id', 'inner');
|
|
$this->db->join('caregiver_experience ce', 'c.id = ce.caregiver_id', 'left');
|
|
#main-query
|
|
|
|
#basic filter:
|
|
$this->db->group_start();
|
|
$this->db->where('c.status','1');
|
|
$this->db->where('c.verification_status','verified');
|
|
$this->db->group_end();
|
|
#basic filter
|
|
|
|
#Advance filter:
|
|
//schedules
|
|
$this->db->group_start();
|
|
$this->db->where('(cs.id IS NULL AND (sp.day = 1 OR (sp.day > 1 AND FIND_IN_SET(DAYOFWEEK(CURRENT_DATE), sp.day - 1))))');
|
|
$this->db->or_where('(cs.acceptance_status = "Declined" AND (sp.day = 1 OR (sp.day > 1 AND FIND_IN_SET(DAYOFWEEK(CURRENT_DATE), sp.day - 1))))');
|
|
$this->db->or_where('(cs.acceptance_status = "Unconfirmed" AND NOW() > cs.end AND (sp.day = 1 OR (sp.day > 1 AND FIND_IN_SET(DAYOFWEEK(CURRENT_DATE), sp.day - 1))))');
|
|
$this->db->group_end();
|
|
|
|
if(count($openCases)>0){
|
|
//service types
|
|
if(count($service_types_arr)>0){
|
|
$this->db->group_start();
|
|
$this->db->where_in('c.qualification_type', $service_types_arr);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
//language preferrence
|
|
if(count($primary_language_arr)>0){
|
|
$this->db->group_start();
|
|
for($i=0;$i<count($primary_language_arr);$i++){
|
|
$lang=$primary_language_arr[$i];
|
|
if($i>0){
|
|
$this->db->or_where('FIND_IN_SET("'.$lang.'", REPLACE(c.primary_langualge, "/", ",")) > 0');
|
|
}else{
|
|
$this->db->where('FIND_IN_SET("'.$lang.'", REPLACE(c.primary_langualge, "/", ",")) > 0');
|
|
}
|
|
}
|
|
$this->db->group_end();
|
|
}
|
|
|
|
//service activity/therapy
|
|
if(count($service_ids_arr)>0){
|
|
$this->db->group_start();
|
|
$this->db->where_in('ce.experience_id', $service_ids_arr);
|
|
$this->db->group_end();
|
|
}
|
|
}else{
|
|
$this->db->group_start();
|
|
$this->db->where('1=2');
|
|
$this->db->group_end();
|
|
}
|
|
#Advance filter: service types
|
|
|
|
#UI Advance filter:
|
|
//ordering
|
|
$this->db->group_by('c.id');
|
|
if($order_column==0){
|
|
$this->db->order_by('c.id', $order_type);
|
|
}elseif($order_column==1) {
|
|
$this->db->order_by('mcs.name', $order_type);
|
|
}elseif($order_column==2){
|
|
$this->db->order_by('c.fname', $order_type);
|
|
}elseif($order_column==3){
|
|
$this->db->order_by('c.email', $order_type);
|
|
}elseif($order_column==4){
|
|
$this->db->order_by('c.phone', $order_type);
|
|
}elseif($order_column==5){
|
|
$this->db->order_by('c.city1', $order_type);
|
|
}
|
|
|
|
//searching
|
|
if(isset($search) && $search!=''){
|
|
$this->db->group_start();
|
|
$this->db->like('c.id', $search);
|
|
$this->db->or_like('mcs.name', $search);
|
|
$this->db->or_like("CONCAT(c.fname,' ',c.lname)", $search);
|
|
$this->db->or_like('c.email', $search);
|
|
$this->db->or_like('c.phone', $search);
|
|
$this->db->or_like('c.city1', $search);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
//pagination
|
|
if($from_api==''){
|
|
$this->db->limit($limit,$start);
|
|
}
|
|
#UI Advance filter:
|
|
/*avl caregivers*/
|
|
|
|
$query=$this->db->get();
|
|
$availableCaregivers=$query->result_array();
|
|
$availableCaregiversCount=$query->num_rows();
|
|
$main_query=$this->db->last_query();
|
|
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>'fetched successfully',
|
|
'data'=>(object)[
|
|
'total_count'=>$total_count,
|
|
'count'=>$availableCaregiversCount,
|
|
'open_cases'=>$availableCaregivers,
|
|
'query'=>$main_query
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_available_caregivers: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_get_cg_patients_list($data){
|
|
try{
|
|
//patients seen by this nurse
|
|
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
|
|
$start=isset($data['start'])?(0+(int)($data['start'])):0;
|
|
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
|
|
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
|
|
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
|
|
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
|
|
|
|
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
|
|
$userid=isset($data['userid'])?intval($data['userid']):0;
|
|
$startDate=isset($data['start_date'])&&$data['start_date']!=""?trim($data['start_date']):null;
|
|
$endDate=isset($data['end_date'])&&$data['end_date']!=""?trim($data['end_date']):null;
|
|
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
'SQL_CALC_FOUND_ROWS
|
|
p.id,
|
|
p.first_name,
|
|
p.last_name,
|
|
CONCAT(p.first_name, " ", p.last_name) AS name,
|
|
p.patient_id as unique_id,
|
|
p.patient_email as email,
|
|
p.telephone,
|
|
p.level_of_service,
|
|
mcs.name AS service_type,
|
|
p.address,
|
|
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.City")) AS main_city,
|
|
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.Zipcode")) AS main_zipcode',false
|
|
);
|
|
$this->db->from('caregiver_schedule cs');
|
|
$this->db->join('caregiver c','cs.caregiver_id=c.id');
|
|
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id');
|
|
$this->db->join('patient_details p','cs.patient_id=p.id');
|
|
$this->db->join('master_cg_skills mcs','p.level_of_service=mcs.id');
|
|
$this->db->join('users u','u.id=p.ion_user_id');
|
|
$this->db->group_start();
|
|
$this->db->where(array('u.active' => 1));
|
|
$this->db->where(array('p.active_status' => 1));
|
|
$this->db->where('cs.status', '1');
|
|
$this->db->where('cs.acceptance_status', 'Reported');
|
|
$this->db->where('cs.timestamp BETWEEN "'.$startDate.'" AND "'.$endDate.'"', null, false);
|
|
$this->db->where('cio.clock_out_time IS NOT NULL');
|
|
$this->db->where('p.active_status', '1');
|
|
$this->db->where('c.ion_user_id', $userid);
|
|
$this->db->group_end();
|
|
|
|
if($order_column==0){
|
|
$this->db->order_by('p.id', $order_type);
|
|
}elseif($order_column==1) {
|
|
$this->db->order_by('mcs.name', $order_type);
|
|
}elseif($order_column==2){
|
|
$this->db->order_by('p.first_name', $order_type);
|
|
}elseif($order_column==3){
|
|
$this->db->order_by('p.patient_email', $order_type);
|
|
}elseif($order_column==4){
|
|
$this->db->order_by('p.telephone', $order_type);
|
|
}elseif($order_column==5){
|
|
$this->db->order_by('p.address', $order_type);
|
|
}
|
|
|
|
if(isset($search) && $search!=''){
|
|
$this->db->group_start();
|
|
$this->db->like('p.id', $search);
|
|
$this->db->or_like('mcs.name', $search);
|
|
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)", $search);
|
|
$this->db->or_like('p.patient_email', $search);
|
|
$this->db->or_like('p.telephone', $search);
|
|
$this->db->or_like('p.address', $search);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
if($from_api==''){
|
|
$this->db->limit($limit,$start);
|
|
}
|
|
|
|
$query=$this->db->get();
|
|
$patientsList=$query->result_array();
|
|
$patientsListCount=$query->num_rows();
|
|
$main_query=$this->db->last_query();
|
|
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>'fetched successfully',
|
|
'data'=>(object)[
|
|
'total_count'=>$total_count,
|
|
'count'=>$patientsListCount,
|
|
'patients'=>$patientsList,
|
|
'query'=>$main_query
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_patients_list: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_get_cg_available_services($data){
|
|
try{
|
|
//service available matching this caregiver profile
|
|
/*
|
|
| 1. New patients who didn't get any schedule yet.
|
|
| 2. Unconfirmed schedules [by caregiver]. (If current time crosses the scheduled end time).
|
|
| 3. Declined schedules [by caregiver].
|
|
| 4. Accepted schedules [by caregiver]. (If there is no clocked-in time between that scheduled start & end time).
|
|
| filter:
|
|
| based upon this caregiver service_type, primary languages, service ids.
|
|
*/
|
|
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
|
|
$start=isset($data['start'])?(0+(int)($data['start'])):0;
|
|
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
|
|
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
|
|
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
|
|
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
|
|
|
|
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
|
|
$userid=isset($data['userid'])?intval($data['userid']):0;
|
|
|
|
/*caregiver info*/
|
|
$this->db->select('c.id, c.primary_langualge, c.qualification_type');
|
|
$this->db->from('caregiver c');
|
|
$this->db->where('c.ion_user_id', $userid);
|
|
$this->db->where('c.status', 1);
|
|
$this->db->where('c.verification_status', 'verified');
|
|
$cgInfo=$this->db->get()->result();
|
|
$qualificationType=$cgInfo[0]->qualification_type;
|
|
$languageArr=explode('/',$cgInfo[0]->primary_langualge);
|
|
|
|
$this->db->distinct();
|
|
$this->db->select('ml.*');
|
|
$this->db->from('master_language ml');
|
|
$this->db->where_in('ml.name',$languageArr);
|
|
$cgInfo2=$this->db->get()->result_array();
|
|
$primaryLanguageArr=array_unique(array_column($cgInfo2,'id'));
|
|
|
|
$this->db->distinct();
|
|
$this->db->select('ce.experience_id');
|
|
$this->db->from('caregiver c');
|
|
$this->db->join('caregiver_experience ce', 'c.id = ce.caregiver_id', 'left');
|
|
$this->db->where('c.ion_user_id', $userid);
|
|
$this->db->where('c.status', 1);
|
|
$this->db->where('c.verification_status', 'verified');
|
|
$cgInfo3=$this->db->get()->result_array();
|
|
$experienceIdsArr=array_column($cgInfo3, 'experience_id');
|
|
/*caregiver info*/
|
|
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
'SQL_CALC_FOUND_ROWS
|
|
p.id,
|
|
p.reference_information,
|
|
p.reference_id,
|
|
p.referral_type,
|
|
p.patient_id,
|
|
p.first_name,
|
|
p.last_name,
|
|
CONCAT(p.first_name, " ", p.last_name) as name,
|
|
p.gender,
|
|
p.patient_email as email,
|
|
p.telephone,
|
|
p.primary_language,
|
|
p.level_of_service,
|
|
mcs.name AS service_type,
|
|
p.address,
|
|
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.City")) AS main_city,
|
|
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.Zipcode")) AS main_zipcode,',false
|
|
);
|
|
$this->db->from('patient_details p');
|
|
$this->db->join('master_cg_skills mcs', 'p.level_of_service = mcs.id', 'left');
|
|
$this->db->join('caregiver_schedule cs', 'p.id = cs.patient_id', 'left');
|
|
$this->db->join('caregiver_patient_clock_in_out cio', 'cs.id = cio.schedule_id', 'left');
|
|
$this->db->where('p.active_status', 1);
|
|
$this->db->where('p.level_of_service',$qualificationType);
|
|
// $this->db->where_in('p.primary_language',$primaryLanguageArr);
|
|
$this->db->where_in('p.service_ids',$experienceIdsArr);
|
|
|
|
$this->db->group_start();
|
|
$this->db->where('(p.referral_type = "New" AND cs.patient_id IS NULL)');
|
|
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Unconfirmed" AND NOW() > cs.end)');
|
|
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Accepted" AND NOW() > cs.end AND cio.schedule_id IS NULL)');
|
|
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Declined")');
|
|
$this->db->group_end();
|
|
|
|
if($order_column==0){
|
|
$this->db->order_by('p.id', $order_type);
|
|
}elseif($order_column==1) {
|
|
$this->db->order_by('mcs.name', $order_type);
|
|
}elseif($order_column==2){
|
|
$this->db->order_by('p.first_name', $order_type);
|
|
}elseif($order_column==3){
|
|
$this->db->order_by('p.patient_email', $order_type);
|
|
}elseif($order_column==4){
|
|
$this->db->order_by('p.telephone', $order_type);
|
|
}elseif($order_column==5){
|
|
$this->db->order_by('p.address', $order_type);
|
|
}
|
|
|
|
if(isset($search) && $search!=''){
|
|
$this->db->group_start();
|
|
$this->db->like('p.id', $search);
|
|
$this->db->or_like('mcs.name', $search);
|
|
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)", $search);
|
|
$this->db->or_like('p.patient_email', $search);
|
|
$this->db->or_like('p.telephone', $search);
|
|
$this->db->or_like('p.address', $search);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
if($from_api==''){
|
|
$this->db->limit($limit,$start);
|
|
}
|
|
|
|
$query=$this->db->get();
|
|
$openCases=$query->result_array();
|
|
$openCasesCount=$query->num_rows();
|
|
$main_query=$this->db->last_query();
|
|
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>'fetched successfully',
|
|
'data'=>(object)[
|
|
'total_count'=>$total_count,
|
|
'count'=>$openCasesCount,
|
|
'services'=>$openCases,
|
|
'query'=>$main_query
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_available_services: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_get_cg_recent_visits($data){
|
|
try{
|
|
//quick overview of recent visits with the ability to click through to detailed reports or care plans.
|
|
/*
|
|
| No, Patient Name, Service Type, Clock In, Clock Out, Status, Option(view report).
|
|
| Accepted/Reported(status=1) + Clocked Out
|
|
| date filtered upon clocked out time (for now fetch last 30days visits only)
|
|
*/
|
|
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
|
|
$start=isset($data['start'])?(0+(int)($data['start'])):0;
|
|
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
|
|
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
|
|
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
|
|
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
|
|
|
|
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'month';
|
|
$userid=isset($data['userid'])?intval($data['userid']):0;
|
|
$interval=isset($data['interval'])?intval($data['interval']):0;
|
|
// $startDate=isset($data['start_date'])&&$data['start_date']!=""?trim($data['start_date']):null;
|
|
// $endDate=isset($data['end_date'])&&$data['end_date']!=""?trim($data['end_date']):null;
|
|
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
'SQL_CALC_FOUND_ROWS
|
|
p.id AS patient_id,
|
|
CONCAT(p.first_name, " ", p.last_name) AS name,
|
|
p.level_of_service,
|
|
mcs.name AS service_type,
|
|
p.address,
|
|
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.City")) AS main_city,
|
|
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.Zipcode")) AS main_zipcode,
|
|
cs.acceptance_status,
|
|
cs.id AS schedule_id,
|
|
cio.clock_in_time,
|
|
cio.clock_out_time',false
|
|
);
|
|
$this->db->from('caregiver_schedule cs');
|
|
$this->db->join('caregiver c','cs.caregiver_id=c.id');
|
|
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id');
|
|
$this->db->join('patient_details p','cs.patient_id=p.id');
|
|
$this->db->join('master_cg_skills mcs','p.level_of_service=mcs.id');
|
|
$this->db->group_start();
|
|
$this->db->where('cs.status', '1');
|
|
$this->db->group_start();
|
|
$this->db->where('cs.acceptance_status','Accepted');
|
|
$this->db->or_where('cs.acceptance_status','Reported');
|
|
$this->db->group_end();
|
|
if($interval<=0){
|
|
$this->db->where('DATE(cio.clock_out_time)>=DATE_SUB(CURDATE(),INTERVAL 30 DAY)');
|
|
}else{
|
|
$this->db->where('DATE(cio.clock_out_time)>=DATE_SUB(CURDATE(),INTERVAL 60 DAY)');
|
|
$this->db->where('DATE(cio.clock_out_time)<DATE_SUB(CURDATE(),INTERVAL 30 DAY)');
|
|
}
|
|
$this->db->where('cio.status',1);
|
|
$this->db->where('p.active_status','1');
|
|
$this->db->where('c.ion_user_id',$userid);
|
|
$this->db->group_end();
|
|
|
|
if($order_column==0){
|
|
$this->db->order_by('cs.id', $order_type);
|
|
}elseif($order_column==1) {
|
|
$this->db->order_by('mcs.name', $order_type);
|
|
}elseif($order_column==2){
|
|
$this->db->order_by('p.first_name', $order_type);
|
|
}elseif($order_column==3){
|
|
$this->db->order_by('cio.clock_in_time', $order_type);
|
|
}elseif($order_column==4){
|
|
$this->db->order_by('cio.clock_out_time', $order_type);
|
|
}elseif($order_column==5){
|
|
$this->db->order_by('cs.acceptance_status', $order_type);
|
|
}
|
|
|
|
if(isset($search) && $search!=''){
|
|
$this->db->group_start();
|
|
$this->db->like('p.id', $search);
|
|
$this->db->or_like('mcs.name', $search);
|
|
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)", $search);
|
|
$this->db->or_like('cio.clock_in_time', $search);
|
|
$this->db->or_like('cio.clock_out_time', $search);
|
|
$this->db->or_like('cs.acceptance_status', $search);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
if($from_api==''){
|
|
$this->db->limit($limit,$start);
|
|
}
|
|
|
|
$query=$this->db->get();
|
|
$recentVisits=$query->result_array();
|
|
$recentVisitsCount=$query->num_rows();
|
|
$main_query=$this->db->last_query();
|
|
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>'fetched successfully',
|
|
'data'=>(object)[
|
|
'total_count'=>$total_count,
|
|
'count'=>$recentVisitsCount,
|
|
'visits'=>$recentVisits,
|
|
'query'=>$main_query
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_recent_visits: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_get_cg_schedules($data){
|
|
try{
|
|
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
|
|
$start=isset($data['start'])?(0+(int)($data['start'])):0;
|
|
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
|
|
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
|
|
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):'default';
|
|
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
|
|
|
|
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
|
|
$userid=isset($data['userid'])?intval($data['userid']):0;
|
|
$startDate=isset($data['start_date'])&&$data['start_date']!=""?trim($data['start_date']):null;
|
|
$endDate=isset($data['end_date'])&&$data['end_date']!=""?trim($data['end_date']):null;
|
|
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
'SQL_CALC_FOUND_ROWS
|
|
(CASE
|
|
WHEN DATE(CURRENT_TIMESTAMP()) > cs.end THEN "past"
|
|
WHEN DATE(CURRENT_TIMESTAMP()) < cs.end THEN "present"
|
|
ELSE ""
|
|
END) AS tense,
|
|
(CASE
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status="Unconfirmed"
|
|
AND CURRENT_TIMESTAMP() < cs.end
|
|
) THEN "unconfirmed"
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status="Accepted"
|
|
AND CURRENT_TIMESTAMP() < cs.end
|
|
) THEN "upcoming"
|
|
WHEN (cio.clock_in_time IS NOT NULL
|
|
AND (
|
|
((cio.clock_out_time IS NULL OR cio.clock_out_time IS NOT NULL) AND cs.acceptance_status="Accepted")
|
|
OR (cio.clock_out_time IS NULL AND cs.acceptance_status="Reported")
|
|
)
|
|
) THEN "ongoing"
|
|
WHEN (cio.clock_in_time IS NOT NULL
|
|
AND cio.clock_out_time IS NOT NULL
|
|
AND cs.acceptance_status="Reported"
|
|
) THEN "completed"
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status IN("Unconfirmed","Accepted")
|
|
AND CURRENT_TIMESTAMP() > cs.end
|
|
) THEN "missed"
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status="Declined"
|
|
) THEN "declined"
|
|
ELSE "undefined"
|
|
END) AS live_status,
|
|
cs.id AS schedule_id,
|
|
p.id AS patient_id,
|
|
CONCAT(p.first_name, " ", p.last_name) AS patient_name,
|
|
CONCAT(c.fname, " ", c.lname) AS caregiver_name,
|
|
v.vedor_name AS vendor_name,
|
|
cs.acceptance_status,
|
|
cs.start AS start_time,
|
|
cs.end AS end_time,
|
|
cio.clock_in_time,
|
|
cio.clock_out_time',false
|
|
);
|
|
$this->db->from('caregiver_schedule cs');
|
|
$this->db->join('caregiver c','cs.caregiver_id=c.id');
|
|
$this->db->join('patient_details p','cs.patient_id=p.id');
|
|
$this->db->join('master_vendor v','p.reference_id=v.id','left');
|
|
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id','left');
|
|
$this->db->where('cs.status',1);
|
|
$this->db->where('c.ion_user_id',$userid);
|
|
$this->db->where('c.status',1);
|
|
$this->db->where('c.verification_status', 'verified');
|
|
$this->db->where('p.active_status','1');
|
|
$this->db->where('DATE(cs.end) BETWEEN "'.$startDate.'" AND "'.$endDate.'"');
|
|
|
|
if($order_column=='default'){
|
|
$this->db->order_by('cs.start', 'ASC');
|
|
}else if($order_column==0){
|
|
$this->db->order_by('cs.id',$order_type);
|
|
}elseif($order_column==1){
|
|
$this->db->order_by('p.first_name',$order_type);
|
|
}elseif($order_column==2){
|
|
$this->db->order_by('v.vedor_name',$order_type);
|
|
}
|
|
|
|
if(isset($search) && $search!=''){
|
|
$this->db->group_start();
|
|
$this->db->like('cs.id', $search);
|
|
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)",$search);
|
|
$this->db->or_like("v.vedor_name",$search);
|
|
$this->db->group_end();
|
|
}
|
|
|
|
if($from_api==''){
|
|
$this->db->limit($limit,$start);
|
|
}
|
|
|
|
$query=$this->db->get();
|
|
$openCases=$query->result_array();
|
|
$openCasesCount=$query->num_rows();
|
|
$main_query=$this->db->last_query();
|
|
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
|
|
|
|
/*find latest ongoing & upcoming schedule*/
|
|
// $this->db->select('cs.id');
|
|
// $this->db->from('caregiver_schedule cs');
|
|
// $this->db->join('caregiver_patient_clock_in_out cio', 'cs.id = cio.schedule_id', 'LEFT');
|
|
// $this->db->where_in('cs.id', array(253, 254, 255, 265));
|
|
// $this->db->where('cs.acceptance_status', 'Accepted');
|
|
// $this->db->where('cio.clock_in_time IS NULL');
|
|
// $this->db->where('cio.clock_out_time IS NULL');
|
|
// $this->db->where('CURRENT_TIMESTAMP() < cs.end', NULL, FALSE);
|
|
// $this->db->order_by('cs.start', 'ASC');
|
|
// $this->db->limit(1, 0);
|
|
// $query2=$this->db->get();
|
|
// $csInfo2=$query2->row();
|
|
// $upcoming_schedule_id=isset($csInfo2->id)?intval($csInfo2->id):0;
|
|
/*find latest ongoing & upcoming schedule*/
|
|
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>'fetched successfully',
|
|
'data'=>(object)[
|
|
'total_count'=>$total_count,
|
|
'count'=>$openCasesCount,
|
|
'schedules'=>$openCases,
|
|
'query'=>$main_query
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_schedules: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_get_cg_scheduling_actions($data){
|
|
try{
|
|
$userid=isset($data['userid'])?intval($data['userid']):0;
|
|
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
|
|
$overall_permission=false;
|
|
if($userid>0 && $schedule_id>0){
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
'(CASE
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status="Unconfirmed"
|
|
AND CURRENT_TIMESTAMP() < cs.end
|
|
) THEN "unconfirmed"
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status="Accepted"
|
|
AND CURRENT_TIMESTAMP() < cs.end
|
|
) THEN "upcoming"
|
|
WHEN (cio.clock_in_time IS NOT NULL
|
|
AND (
|
|
((cio.clock_out_time IS NULL OR cio.clock_out_time IS NOT NULL) AND cs.acceptance_status="Accepted")
|
|
OR (cio.clock_out_time IS NULL AND cs.acceptance_status="Reported")
|
|
)
|
|
) THEN "ongoing"
|
|
WHEN (cio.clock_in_time IS NOT NULL
|
|
AND cio.clock_out_time IS NOT NULL
|
|
AND cs.acceptance_status="Reported"
|
|
) THEN "completed"
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status IN("Unconfirmed","Accepted")
|
|
AND CURRENT_TIMESTAMP() > cs.end
|
|
) THEN "missed"
|
|
WHEN (cio.clock_in_time IS NULL
|
|
AND cio.clock_out_time IS NULL
|
|
AND cs.acceptance_status="Declined"
|
|
) THEN "declined"
|
|
ELSE "undefined"
|
|
END) AS live_status,
|
|
IF(cio.clock_in_time IS NULL,1,0) AS clock_in_permission,
|
|
IF(cio.clock_out_time IS NULL,1,0) AS clock_out_permission,
|
|
IF(cio.clock_in_time IS NOT NULL AND cio.clock_out_time IS NULL,1,0) AS add_notes_permission,
|
|
cs.id AS schedule_id,
|
|
c.id AS caregiver_id,
|
|
p.id AS patient_id,
|
|
CONCAT(p.first_name, " ", p.last_name) AS patient_name,
|
|
CONCAT(c.fname, " ", c.lname) AS caregiver_name,
|
|
cs.acceptance_status,
|
|
cs.start AS start_time,
|
|
cs.end AS end_time,
|
|
cio.clock_in_time,
|
|
cio.clock_out_time'
|
|
);
|
|
$this->db->from('caregiver_schedule cs');
|
|
$this->db->join('caregiver c','cs.caregiver_id=c.id');
|
|
$this->db->join('patient_details p','cs.patient_id=p.id');
|
|
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id','left');
|
|
$this->db->where('cs.id',$schedule_id);
|
|
$this->db->where('cs.status',1);
|
|
$this->db->where('c.ion_user_id',$userid);
|
|
$this->db->where('c.status',1);
|
|
$this->db->where('c.verification_status', 'verified');
|
|
$this->db->where('p.active_status','1');
|
|
$query=$this->db->get();
|
|
// $query->num_rows();
|
|
$result=$query->row();
|
|
$live_status=isset($result->live_status)?trim($result->live_status):'';
|
|
$clock_in_permission=isset($result->clock_in_permission)&&intval($result->clock_in_permission)>0?true:false;
|
|
$clock_out_permission=isset($result->clock_out_permission)&&intval($result->clock_out_permission)>0?true:false;
|
|
$add_notes_permission=isset($result->add_notes_permission)&&intval($result->add_notes_permission)>0?true:false;
|
|
if($live_status=='upcoming' || ($live_status=='ongoing' && $clock_out_permission!==false)){
|
|
$overall_permission=true;
|
|
}
|
|
}
|
|
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>'fetched successfully',
|
|
'data'=>(object)[
|
|
'caregiver_id'=>isset($result->caregiver_id)?intval($result->caregiver_id):0,
|
|
'patient_id'=>isset($result->patient_id)?intval($result->patient_id):0,
|
|
'schedule_id'=>isset($result->schedule_id)?intval($result->schedule_id):0,
|
|
'live_status'=>$live_status,
|
|
'overall_permission'=>$overall_permission,
|
|
'clock_in_permission'=>$clock_in_permission,
|
|
'clock_out_permission'=>$clock_out_permission,
|
|
'add_notes_permission'=>$add_notes_permission
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_scheduling_actions: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_get_cg_visit_notes($data){
|
|
try{
|
|
$user_id=isset($data['user_id'])?intval($data['user_id']):0;
|
|
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
|
|
|
|
$this->db->distinct();
|
|
$this->db->select('pr.id,pr.visit_info,pr.quick_notes');
|
|
$this->db->from('caregiver_schedule cs');
|
|
$this->db->join('caregiver c', 'cs.caregiver_id = c.id');
|
|
$this->db->join('patient_report pr', 'cs.id = pr.schedule_id AND cs.caregiver_id = pr.caregiver_id AND cs.patient_id = pr.patient_id', 'left');
|
|
$this->db->where('cs.id',$schedule_id);
|
|
$this->db->where('c.ion_user_id',$user_id);
|
|
$query=$this->db->get();
|
|
$result=$query->row();
|
|
// echo $this->db->last_query();
|
|
// $visit_info=isset($result->visit_info)&&$result->visit_info!=null&&trim($result->visit_info)!=''?json_decode($result->visit_info,true):[];
|
|
// $quick_notes=isset($visit_info['Notes'])?trim($visit_info['Notes']):'';
|
|
$quick_notes=isset($result->quick_notes)&&$result->quick_notes!=null?trim($result->quick_notes):'';
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>"fetched successfully",
|
|
'data'=>[
|
|
'notes'=>$quick_notes
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_visit_notes: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_get_cg_tasks($data){
|
|
try{
|
|
$user_id=isset($data['user_id'])?intval($data['user_id']):0;
|
|
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
|
|
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
"ctl.id,
|
|
ctl.name,
|
|
ctl.title,
|
|
(CASE
|
|
WHEN (
|
|
SELECT COUNT(cio.id)
|
|
FROM caregiver_patient_clock_in_out cio
|
|
JOIN caregiver c ON cio.caregiver_id=c.id
|
|
WHERE JSON_CONTAINS(task_list, CONCAT('[',ctl.id,']'))
|
|
AND cio.schedule_id=$schedule_id
|
|
AND c.ion_user_id=$user_id
|
|
) > 0 THEN TRUE
|
|
ELSE FALSE
|
|
END) AS checked"
|
|
);
|
|
$this->db->from('caregiver_tasks_list ctl');
|
|
$this->db->where('ctl.status', '1');
|
|
$query=$this->db->get();
|
|
$tasks=$query->result();
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>"fetched successfully",
|
|
'data'=>[
|
|
'tasks'=>$tasks
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_tasks: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_save_cg_visit_notes($data){
|
|
try{
|
|
$user_id=isset($data['user_id'])?intval($data['user_id']):0;
|
|
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
|
|
$notes=isset($data['notes'])?trim($data['notes']):'';
|
|
if($user_id>0 && $schedule_id>0){
|
|
$this->db->distinct();
|
|
$this->db->select('cs.caregiver_id,cs.patient_id,pr.id AS report_id');
|
|
$this->db->from('caregiver_schedule cs');
|
|
$this->db->join('caregiver c', 'cs.caregiver_id = c.id');
|
|
$this->db->join('patient_report pr', 'cs.id = pr.schedule_id AND cs.caregiver_id = pr.caregiver_id AND cs.patient_id = pr.patient_id', 'left');
|
|
$this->db->where('cs.id',$schedule_id);
|
|
$this->db->where('c.ion_user_id',$user_id);
|
|
$query=$this->db->get();
|
|
$result=$query->row();
|
|
$caregiver_id=isset($result->caregiver_id)&&$result->caregiver_id!=null?intval($result->caregiver_id):0;
|
|
$patient_id=isset($result->patient_id)&&$result->patient_id!=null?intval($result->patient_id):0;
|
|
$report_id=isset($result->report_id)&&$result->report_id!=null?intval($result->report_id):0;
|
|
if($caregiver_id>0 && $patient_id>0){
|
|
if($report_id>0){
|
|
$this->db->where('id',$report_id);
|
|
$this->db->update('patient_report',array('quick_notes'=>$notes));
|
|
if($this->db->affected_rows()>0){
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>"saved successfully"
|
|
];
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>500,
|
|
'msg'=>"not saved! try again!"
|
|
];
|
|
}
|
|
}else{
|
|
$this->db->select('id');
|
|
$this->db->from('patient_report');
|
|
$this->db->where('patient_id',$patient_id);
|
|
$query2=$this->db->get();
|
|
$assessment_type=$query2->num_rows()>0?'assessment':'initial_assessment';
|
|
$report_data=[
|
|
'patient_id'=>$patient_id,
|
|
'caregiver_id'=>$caregiver_id,
|
|
'schedule_id'=>$schedule_id,
|
|
'quick_notes'=>$notes,
|
|
'assessment_type'=>$assessment_type,
|
|
'report_entry_date'=>date("Y-m-d")
|
|
];
|
|
$this->db->insert("patient_report",$report_data);
|
|
$inserted_id=$this->db->insert_id();
|
|
if($inserted_id>0){
|
|
$report_data['patient_report_id']=$inserted_id;
|
|
unset($report_data['quick_notes']);
|
|
$this->db->insert("assessment",$report_data);
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>"saved successfully"
|
|
];
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>500,
|
|
'msg'=>"not saved! try again!"
|
|
];
|
|
}
|
|
}
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>400,
|
|
'msg'=>"not saved! patient or caregiver does not exist"
|
|
];
|
|
}
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>400,
|
|
'msg'=>"unauthorized access! user not found!"
|
|
];
|
|
}
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_get_cg_visit_notes: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function model_save_cg_clock_in_out($data){
|
|
try{
|
|
$userid=isset($data['userid'])?intval($data['userid']):0;
|
|
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
|
|
$fetchData=$this->model_get_cg_scheduling_actions([
|
|
'userid'=>$userid,
|
|
'schedule_id'=>$schedule_id
|
|
]);
|
|
$schData=$fetchData->data;
|
|
if($schData->overall_permission!==false){
|
|
$geoaddress=geo_address_by_ip();
|
|
$geoData=json_encode([
|
|
"ip"=>$geoaddress->ip,
|
|
"latitute"=>$geoaddress->latitude,
|
|
"longitude"=>$geoaddress->longitude,
|
|
"city"=>$geoaddress->city,
|
|
"zipcode"=>$geoaddress->zipcode,
|
|
"time_zone"=>$geoaddress->time_zone,
|
|
"country_flag"=>$geoaddress->country_flag
|
|
]);
|
|
if($schData->clock_in_permission!==false){
|
|
$dataClockIn=[
|
|
'caregiver_id'=>$schData->caregiver_id,
|
|
'patient_id'=>$schData->patient_id,
|
|
'schedule_id'=>$schedule_id,
|
|
'clock_in_time'=>gmdate("Y-m-d H:i:s"),
|
|
'clock_in_data'=>$geoData,
|
|
'status'=>'1',
|
|
'created_on'=>gmdate("Y-m-d H:i:s")
|
|
];
|
|
$query=$this->db->insert('caregiver_patient_clock_in_out', $dataClockIn);
|
|
if($this->db->insert_id()>0){
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>"clocked in successfully",
|
|
];
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>500,
|
|
'msg'=>"error occurred while clocking in! try again",
|
|
];
|
|
}
|
|
}else if($schData->clock_out_permission!==false){
|
|
$tasks=isset($data['tasks'])?trim($data['tasks']):'';
|
|
$dataClockOut=[
|
|
'clock_out_time'=>gmdate("Y-m-d H:i:s"),
|
|
'clock_out_data'=>$geoData,
|
|
'task_list'=>'['.$tasks.']',
|
|
'clock_status'=>'1'
|
|
];
|
|
|
|
$this->db->where('schedule_id',$schedule_id);
|
|
$this->db->where('caregiver_id',$schData->caregiver_id);
|
|
$this->db->where('patient_id',$schData->patient_id);
|
|
$query=$this->db->update('caregiver_patient_clock_in_out',$dataClockOut);
|
|
if($this->db->affected_rows()>0){
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>"clocked out successfully",
|
|
];
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>500,
|
|
'msg'=>"error occurred while clocking out! try again",
|
|
];
|
|
}
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>400,
|
|
'msg'=>"already clocked out! could not saved.",
|
|
];
|
|
}
|
|
}else{
|
|
$response=(object)[
|
|
'status'=>400,
|
|
'msg'=>"unauthorized action! could not saved.",
|
|
];
|
|
}
|
|
|
|
if($response->status==200){
|
|
$response->data=$this->model_get_cg_scheduling_actions([
|
|
'userid'=>$userid,
|
|
'schedule_id'=>$schedule_id
|
|
])->data;
|
|
}
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Caregiver_model - model_save_cg_clock_in_out: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
function get_caregiver_draft_report_list($data){
|
|
try{
|
|
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
|
|
$start=isset($data['start'])?(0+(int)($data['start'])):0;
|
|
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
|
|
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
|
|
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
|
|
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
|
|
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
|
|
$user_id=isset($data['user_id'])&&$data['user_id']!=""?trim($data['user_id']):'';
|
|
$currentDate = time();
|
|
$start_date='';
|
|
$end_date='';
|
|
if ($filter=='week') {
|
|
$start_date = date('Y-m-d', strtotime('this week', $currentDate));
|
|
$end_date = date('Y-m-d', strtotime('this week +6 days', $currentDate));
|
|
} elseif ($filter=='month') {
|
|
$start_date = date('Y-m-01');
|
|
$end_date = date('Y-m-t');
|
|
} elseif ($filter=='year') {
|
|
$currentYear = date('Y');
|
|
$start_date = date('Y-01-01', strtotime($currentYear));
|
|
$end_date = date('Y-12-31', strtotime($currentYear));
|
|
}
|
|
|
|
$this->db->distinct();
|
|
$this->db->select(
|
|
'SQL_CALC_FOUND_ROWS
|
|
cio.id,
|
|
cio.patient_id,
|
|
cio.schedule_id,
|
|
cio.clock_in_time,
|
|
cio.clock_out_time,
|
|
cio.schedule_id,
|
|
CONCAT(cvr.fname, " ",cvr.lname) as caregiver_name,
|
|
CONCAT(pd.first_name, " ",pd.last_name) as patient_name,
|
|
mcs.name AS service_type,
|
|
pd.telephone,
|
|
pd.address,
|
|
JSON_UNQUOTE(JSON_EXTRACT(pd.address, "$.City")) AS main_city,
|
|
JSON_UNQUOTE(JSON_EXTRACT(pd.address, "$.Zipcode")) AS main_zipcode
|
|
',false
|
|
);
|
|
$this->db->from('caregiver_patient_clock_in_out cio');
|
|
$this->db->join('caregiver cvr', 'cio.caregiver_id = cvr.id', 'left');
|
|
$this->db->join('caregiver_schedule ps', 'cio.schedule_id = ps.id', 'left');
|
|
$this->db->join('patient_details pd', 'cio.patient_id = pd.id', 'left');
|
|
$this->db->join('master_cg_skills mcs', 'pd.level_of_service = mcs.id', 'left');
|
|
$this->db->where('cio.status', 1);
|
|
$this->db->where('ps.status', 1);
|
|
$this->db->where('pd.active_status', 1);
|
|
$this->db->where('ps.acceptance_status', 'Accepted');
|
|
$this->db->where('cvr.ion_user_id',$user_id);
|
|
$this->db->where('cio.clock_in_time IS NOT NULL');
|
|
if ($start_date!='' && $end_date!='') {
|
|
$this->db->where('cio.created_on >=', $start_date);
|
|
$this->db->where('cio.created_on <=', $end_date);
|
|
}
|
|
if($order_column==0){
|
|
$this->db->order_by('cio.id', $order_type);
|
|
}elseif($order_column==1) {
|
|
$this->db->order_by('pd.first_name', $order_type);
|
|
}elseif($order_column==2){
|
|
$this->db->order_by('mcs.name', $order_type);
|
|
}elseif($order_column==3){
|
|
$this->db->order_by('pd.telephone', $order_type);
|
|
}elseif($order_column==4){
|
|
$this->db->order_by('pd.address', $order_type);
|
|
}elseif($order_column==5){
|
|
$this->db->order_by('cio.clock_in_time', $order_type);
|
|
}elseif($order_column==5){
|
|
$this->db->order_by('cio.clock_out_time', $order_type);
|
|
}
|
|
if(isset($search) && $search!=''){
|
|
$this->db->group_start();
|
|
$this->db->like('cio.id', $search);
|
|
$this->db->or_like("CONCAT(pd.first_name,' ',pd.last_name)", $search);
|
|
$this->db->or_like('mcs.name', $search);
|
|
$this->db->or_like('pd.telephone', $search);
|
|
$this->db->or_like('pd.address', $search);
|
|
$this->db->or_like('cio.clock_in_time', $search);
|
|
$this->db->or_like('cio.clock_out_time', $search);
|
|
$this->db->group_end();
|
|
}
|
|
if($from_api==''){
|
|
$this->db->limit($limit,$start);
|
|
}
|
|
$query=$this->db->get();
|
|
$myPatient=$query->result_array();
|
|
$myPatientCount=$query->num_rows();
|
|
$main_query=$this->db->last_query();
|
|
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
|
|
$response=(object)[
|
|
'status'=>200,
|
|
'msg'=>'fetched successfully',
|
|
'data'=>(object)[
|
|
'total_count'=>$total_count,
|
|
'count'=>$myPatientCount,
|
|
'data_list'=>$myPatient,
|
|
'main_query'=>$main_query
|
|
]
|
|
];
|
|
return $response;
|
|
}catch(Exception $e){
|
|
$getMsg="Patient_model - get_caregiver_patients_list: ".$e->getMessage();
|
|
echo $getMsg;
|
|
}
|
|
}
|
|
}
|