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 '
'; print_r($post); echo '
'; 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 '
'; print_r($post); echo '
'; 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 '
'; print_r($query); echo '
'; 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 '
'; print_r($query); echo '
'; 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 '
'; print_r($skill); echo '
'; 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 '
'; print_r($data); echo '
'; 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 '
'; print_r($query); echo '
'; 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 '
'; print_r($outputs); echo '
'; //die; // foreach ($outputs as $val) { // echo count($val['CHILDREN']); // } //die; $output=''; //if($service_count>0){ $output.='
'; //} $output.=''; 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 '
';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 '
'; print_r($query); echo '
';die; return $query->result(); } function saveCaregiverStep($tbl, $data, $midid) { // echo 'TABLE NAME : '.$tbl;echo '
'; // echo '
'; print_r($data);echo '
';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 '
'; // 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 "
";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 "
";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; '
'; // echo '
'; print_r($data);echo '
';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 '
';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 '
';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; '
'; // echo '
'; print_r($data);echo '
';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 '
';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 '
'; // 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; '
'; // echo '
'; print_r($data);echo '
';die; foreach ($data as $key => $value) { // echo $value['status']; echo "
"; $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 '
';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***************
'; // echo $key.'
'; $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***************
'; // echo $key.'
'; $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***************
'; // echo $key.'
'; $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***************
'; // echo $key.'
'; $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;$i0){ $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)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; } } }