4318 lines
210 KiB
PHP
Executable File

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Caregiver_model extends CI_model {
function __construct() {
parent::__construct();
$this->load->database();
}
function checkEmail($email){
$result=$this->db->get_where('users', array('email' => $email))->row();
if($result){
return false;
}else{
return true;
}
}
function checkEmail2($email){
$result=$this->db->get_where('users', array('email' => $email))->row();
if(count($result) > 0){
return false;
}else{
return true;
}
}
function check_nurse_email_avl($cgid=0,$email=""){
try{
if($email!=""){
$row=$this->db->get_where('caregiver', array('id'=>$cgid))->row();
$nurse_email=$row->email;
$nurse_ion_user_email=$this->db->get_where('users',array('id'=>$row->ion_user_id))->row()->email;
if($email==$nurse_email || $email==$nurse_ion_user_email){
return true;
}else{
$rec1=$this->db->get_where('caregiver',array('email'=>$email));
$rec2=$this->db->get_where('users',array('email'=>$email));
return ($rec1->num_rows()>0 || $rec2->num_rows()>0)?false:true;
}
}else{
return false;
}
}catch(Exception $e){
$getMsg="Caregiver_model - check_nurse_email_avl: ".$e->getMessage();
echo $getMsg;
}
}
function update_nurse_ion_user_email($cgid=0,$email=""){
try{
if($cgid>0 && $email!=""){
$check=$this->check_nurse_email_avl($cgid,$email);
if($check){
$this->db->where('id',$cgid);
$this->db->update('caregiver', ['email'=>$email]);
$row=$this->db->get_where('caregiver',array('email'=>$email))->row();
$ion_user_id=$row->ion_user_id;
if($ion_user_id>0){
$this->db->where('id',$ion_user_id);
$this->db->update('users', ['email'=>$email]);
}
return true;
}else{
return false;
}
}else{
return false;
}
}catch(Exception $e){
$getMsg="Caregiver_model - update_nurse_ion_user_email: ".$e->getMessage();
echo $getMsg;
}
}
function getNameIdById($id){
$result=$this->db->get_where('caregiver', array('id' => $id))->row();
$data['name']=$result->fname.' '.$result->mid_name.' '.$result->lname;
$data['caregiver_id']=$result->caregiver_id;
$data['ion_user_id']=$result->ion_user_id;
return $data;
}
function insertNurse($data,$data2=null,$data3=null) {
$this->db->insert('caregiver', $data);
//echo $this->db->last_query();die;
$caregiver_id = $this->db->insert_id();
$data2['caregiver_table_id'] = $caregiver_id;
$this->db->insert('caregiver_step2', $data2);
$data3['caregiver_table_id'] = $caregiver_id;
// $data3['employee_type'] = $data['employee_type'];
$this->db->insert('caregiver_step3', $data3);
return $this->db->insert_id();
}
function updateCaregiverVerification($post){
unset($post['submit']);
// echo '<pre>'; print_r($post); echo '</pre>'; exit;
// $verified_tab['tab1']=''
// $post['verified_tab']=json_encode($verified_tab);
// $this->Caregiver_model->updateCaregiverVerification($post);
$this->db->where('caregiver_id', $post['caregiver_id']);
$query = $this->db->get('caregiver_verification')->row();
if($query){
if($query->verified_tab==''){
$verified_tab=json_decode($query->verified_tab);
$verified_tab['tab1']=1;
$verified_tab['tab2']=0;
$verified_tab['tab3']=0;
$verified_tab['tab4']=0;
$post['verified_tab']=json_encode($verified_tab);
}
//echo '<pre>'; print_r($post); echo '</pre>'; die;
$this->db->where('caregiver_id', $post['caregiver_id']);
$this->db->update('caregiver_verification', $post);
}else{
$verified_tab['tab1']=1;
$verified_tab['tab2']=0;
$verified_tab['tab3']=0;
$verified_tab['tab4']=0;
$post['verified_tab']=json_encode($verified_tab);
$this->db->insert('caregiver_verification', $post);
}
//echo $this->db->last_query();die;
}
function getNurseByEmail($email) {
$this->db->where('email', $email);
$query = $this->db->get('caregiver')->row();
return $query;
}
function caregiver_verification($id) {
$this->db->where('caregiver_id', $id);
$query = $this->db->get('caregiver_verification')->row();
return $query;
}
function getNurse() {
$query = $this->db->get('caregiver');
return $query->result();
}
function name_list(){
$this->db->order_by('id', 'DESC');
$query = $this->db->get('onboardvideo');
return $query->result();
}
function getSendApprovalList($limit, $start, $orderColumn, $orderType, $search="") {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('qualification_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('fname', $orderType);
else if($orderColumn==3)
$this->db->order_by('email', $orderType);
else if($orderColumn==4)
$this->db->order_by('phone', $orderType);
if(isset($search) && $search!='')
{
$this->db->like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
}
$this->db->where('submited_for_verification', 'yes');
$this->db->where('verification_status !=','verified');
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver');
return $query->result();
}
function getSendApprovalListCount($limit, $start, $orderColumn, $orderType, $search="") {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('qualification_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('fname', $orderType);
else if($orderColumn==3)
$this->db->order_by('email', $orderType);
else if($orderColumn==4)
$this->db->order_by('phone', $orderType);
if(isset($search) && $search!='')
{
$this->db->like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
}
$this->db->where('submited_for_verification', 'yes');
$this->db->where('verification_status !=','verified');
$query = $this->db->get('caregiver');
return $query->result();
}
function getNurseBysearch($search) {
$this->db->order_by('id', 'desc');
$this->db->like('id', $search);
$this->db->or_like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
$query = $this->db->get('caregiver');
return $query->result();
}
function getNurseById($id) {
$this->db->select('a1.*,a2.*,a3.*,a4.name as skill_name');
//$this->db->select("caregiver.id as id");
$this->db->from('caregiver a1');
$this->db->join('caregiver_step2 a2', 'a1.id = a2.caregiver_table_id', 'left');
$this->db->join('caregiver_step3 a3', 'a1.id = a3.caregiver_table_id', 'left');
$this->db->join('master_cg_skills a4', 'a1.qualification_type = a4.id', 'left');
$this->db->where('a1.id', $id);
$query = $this->db->get();
//echo $this->db->get_compiled_select(); die;
return $query->row();
// $this->db->where('id', $id);
// $query = $this->db->get('caregiver');
// return $query->row();
}
function getNurseByLimitBySearch($limit, $start, $orderColumn, $orderType, $search="", $searchIn="") {
// print_r($searchIn);die;
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('qualification_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('fname', $orderType);
else if($orderColumn==3)
$this->db->order_by('email', $orderType);
else if($orderColumn==4)
$this->db->order_by('phone', $orderType);
if(isset($search) && $search!='')
{
$this->db->group_start();
$this->db->like('id', $search);
$this->db->or_like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
$this->db->group_end();
}
if(isset($searchIn) && $searchIn!='')
{
if($searchIn == 'pendingApplication'){
$this->db->where('progress <=','100');
$this->db->where('submited_for_verification','no');
}else if($searchIn == 'pendingAcceptance'){
$this->db->where('submited_for_verification','yes');
}
}
if($searchIn=='')
{
$this->db->where('verification_status','verified');
$this->db->where('status','1');
}
$this->db->limit($limit, $start);
$this->db->order_by('id', "DESC");
$query = $this->db->get('caregiver');
// echo $this->db->last_query();
return $query->result();
}
function getNurseByLimitBySearchCount($limit, $start, $orderColumn, $orderType, $search="", $searchIn="") {
// print_r($searchIn);die;
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('qualification_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('fname', $orderType);
else if($orderColumn==3)
$this->db->order_by('email', $orderType);
else if($orderColumn==4)
$this->db->order_by('phone', $orderType);
if(isset($search) && $search!='')
{
$this->db->group_start();
$this->db->like('id', $search);
$this->db->or_like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
$this->db->group_end();
}
if(isset($searchIn) && $searchIn!='')
{
if($searchIn == 'pendingApplication'){
$this->db->where('progress <=','100');
$this->db->where('submited_for_verification','no');
}else if($searchIn == 'pendingAcceptance'){
$this->db->where('submited_for_verification','yes');
}
}
if($searchIn=='')
{
$this->db->where('verification_status','verified');
$this->db->where('status','1');
}
$this->db->order_by('id', "DESC");
$query = $this->db->get('caregiver');
// echo $this->db->last_query();
return $query->result();
}
/*deprecated
function getNurseByLimitBySearch($limit, $start, $orderColumn, $orderType, $search) {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('fname', $orderType);
else if($orderColumn==2)
$this->db->order_by('email', $orderType);
else if($orderColumn==3)
$this->db->order_by('phone', $orderType);
$this->db->like('id', $search);
$this->db->or_like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver');
return $query->result();
}*/
function getNurseSkill($id) {
$this->db->select("caregiver.*");
$this->db->select("master_cg_skills.name as skill_name");
$this->db->from("caregiver");
$this->db->join("master_cg_skills", "caregiver.qualification_type = master_cg_skills.id");
$this->db->where('caregiver.id', $id);
//echo $this->db->get_compiled_select(); die;
$query = $this->db->get();
//echo '<pre>'; print_r($query); echo '</pre>'; exit;
return $query->row();
}
function getSkillNameByid($id){
$this->db->where('id', $id);
$this->db->where('status!=', 0);
$query=$this->db->get('master_cg_skills')->row();
return $query->name;
}
function getTimeSlotById($id){
$this->db->where('id', $id);
$this->db->where('status!=', 0);
return $query=$this->db->get('master_timeslot_type')->row();
}
// by naran on 16-09-2021.............
function getOnboardQuizStatus($id){
$this->db->where('ion_user_id',$id);
$quary1=$this->db->get('caregiver')->row();
$cg_id=$quary1->id;
$this->db->select("*");
$this->db->from('quizexamresult');
$this->db->where('user_id',$cg_id);
$rows=$this->db->get()->num_rows();
$this->db->where('user_id',$cg_id);
$quary2=$this->db->get('caregiver_onboard_registration_token')->row();
$video_ids=json_decode($quary2->videos);
$token=$quary2->token;
if($rows>0){
$length=count($video_ids);
$a=array();
for($i=0;$i<$length;$i++){
$vid=$video_ids[$i]->id;
$this->db->select("*");
$this->db->from('quizexamresult');
$this->db->where('user_id',$cg_id);
$this->db->where('video_id',$vid);
$rows=$this->db->get()->num_rows();
if($rows>0){
$a['status']=1;
continue;
}else{
$a['status']=0;
break;
}
}
$a['token']=$token;
return $a;
}else{
$a['status']=0;
$a['token']=$token;
return $a;
}
}
//end by naran on 16-09-2021.............
function getNurseByIonId($id) {
$this->db->select('*');
//$this->db->select("caregiver.id as id");
$this->db->from('caregiver a1');
$this->db->join('caregiver_step2 a2', 'a1.id = a2.caregiver_table_id', 'left');
$this->db->join('caregiver_step3 a3', 'a1.id = a3.caregiver_table_id', 'left');
$this->db->where('a1.ion_user_id', $id);
$query = $this->db->get();
// return $query->row();
// $this->db->where('ion_user_id', $id);
// $query = $this->db->get('caregiver');
//echo '<pre>'; print_r($query); echo '</pre>'; exit;
return $query->row();
}
function email_check($email) {
//echo $email;die;
$this->db->where('email', $email);
$query = $this->db->get('caregiver')->row();
if($query)
return 1;
else
return 0;
}
function update_email_check($email,$ionid) {
//echo $email;die;
$this->db->where('email', $email)->where('id!=',$ionid);
$query = $this->db->get('users')->row();
//echo $this->db->last_query();
// print_r($query);
//die;
if($query)
return 1;
else
return 0;
}
function updateIonUser($email,$password,$id,$ionid){
$update_ion_user = array(
'email' => $email,
'password' => $password
);
$this->db->where('id', $ionid);
$this->db->update('users', $update_ion_user);
$update_caregiver = array(
'email' => $email
);
$this->db->where('id', $id);
$this->db->update('caregiver', $update_caregiver);
}
function updateNurse($id,$data,$data2=null,$data3=null) {
// pre($data);
// die;
$this->db->where('id', $id);
$this->db->update('caregiver', $data);
// echo $this->db->last_query();die;
if($data2){
$this->db->where('caregiver_table_id', $id);
$this->db->update('caregiver_step2', $data2);
}
//echo $this->db->last_query();die;
if($data3){
$this->db->where('caregiver_table_id', $id);
$this->db->update('caregiver_step3', $data3);
}
//echo $this->db->last_query();die;
return $this->db->affected_rows();
// die;
}
function updateService($id, $data) {
//echo '<pre>'; print_r($skill); echo '</pre>'; die;
$this->db->where('caregiver_id', $id);
$this->db->delete('caregiver_service_mapping');
foreach($data as $ser){
$serarr=array(
'caregiver_id'=>$id,
'service_id'=>$ser,
// 'skill_id'=>$skill['qualification_type']
);
$this->db->insert('caregiver_service_mapping', $serarr);
}
return true;
}
function caregiversExperience($id, $data) {
//echo '<pre>'; print_r($data); echo '</pre>'; echo $id; die;
$this->db->reset_query();
$this->db->delete('caregiver_experience');
$this->db->delete('caregiver_experience', array('caregiver_id' => $id));
//echo $this->db->last_query();die;
foreach($data['exp_label'] as $key=>$exp){
$group=$this->db->get_where('master_cg_service', array('id' => $key))->row();
$experience=array(
'caregiver_id'=>$id,
'experience_id'=>$key,
'group_id'=>$group->service_head_id,
'experience_value'=>$exp
);
$experience['skill_id']=$data['qualification_type'];
$this->db->insert('caregiver_experience', $experience);
}
return true;
}
function get_caregiver_experience($id=NULL){
$query=$this->db->get_where('caregiver_experience', array('caregiver_id' =>$id));
return $query->result();
}
function CheckAvailability($data){
$start=$data['scheduleDate'].' '.$data['startTime'];
$end=$data['scheduleDate'].' '.$data['endTime'];
$caregiver_id=$data['caregiver_id'];
$sql="SELECT * FROM caregiver_availability";
$sql.=" where status='1' and caregiver_id='".$caregiver_id."'";
$sql.=" and ( ('".$start."' between start and end)
and
('".$end."' between start and end)
)";
$result=$this->db->query($sql)->result();
$output='';
if(!empty($result)){
$output='Already in Availability List.';
}
//echo $this->db->last_query();
//return json_encode($result);
return $output;
//print_r($data);
}
function get_state_nameByid($id){
$query=$this->db->get_where('master_statelist', array('id' => $id))->row();
return $query->name;
}
function get_state_list(){
$query=$this->db->get_where('master_statelist', array('status' => '1'));
return $query->result();
}
function get_city_list(){
$query=$this->db->get_where('master_city', array('status' => '1'));
return $query->result();
}
function get_language_list(){
$query=$this->db->get_where('master_language', array('status' => '1'));
return $query->result();
}
function get_country_list(){
$query=$this->db->get_where('master_country', array('status' => '1'));
return $query->result();
}
function get_time_slot_list(){
$query=$this->db->get_where('master_timeslot_type', array('status' => '1'));
return $query->result();
}
function get_time_slot_Byid($id){
$query=$this->db->get_where('master_timeslot_type', array('id' => $id))->row();
return $query->name;
}
function get_ref_src_list(){
$query=$this->db->get_where('master_cg_referal_source', array('status' => '1'));
return $query->result();
}
function get_ref_src_Byid($id){
$query=$this->db->get_where('master_cg_referal_source', array('id' => $id))->row();
return $query->name;
}
function get_relation(){
$this->db->order_by('name', 'ASC');
$query=$this->db->get_where('master_relations', array('status' => '1'));
return $query->result();
}
function get_reason_for_leaving(){
$query=$this->db->get_where('master_reason_for_leaving', array('status' => '1'));
return $query->result();
}
function get_service_list($id = NULL){
if($id){
$getSkill=$this->db->get_where('caregiver', array('id' => $id))->row();
}
$heads = $this->db->get_where('master_service_head',array('skill_id'=>$getSkill->qualification_type))->result();
$head_count=0;
foreach($heads as $head){
$subHeads = $this->db->get_where('master_cg_service',array('service_head_id'=>$head->id))->result();
$sub_head_count=0;
$accessableChildren = array();
foreach($subHeads as $subHead){
$children = $this->db->get_where('master_cg_service',array('parent_id'=>$subHead->id))->result();
$child_count=0;
$accessableChildren[$sub_head_count]['ID'] = $subHead->id;
$accessableChildren[$sub_head_count]['NAME'] = $subHead->service_name;
$accessableChildren[$sub_head_count]['PARENT_ID'] = $subHead->parent_id;
$accessableChildren2 = array();
foreach( $children as $child){
$accessableChildren2[$child_count]['ID'] = $child->id;
$accessableChildren2[$child_count]['NAME'] = $child->service_name;
$accessableChildren2[$child_count]['PARENT_ID'] = $child->parent_id;
// $output[$head_count]['subHead'][$sub_head_count]['child'][$child_count] = $child->service_name;
$child_count++;
}
$accessableChildren[$sub_head_count]['CHILDREN'] = $accessableChildren2;
//$output[$head_count]['subHead'][$sub_head_count] = $subHead->service_name;
$sub_head_count++;
}
$outputs[$head_count]['NAME'] = $head->service_head_name;
$outputs[$head_count]['ID'] = $head->id;
$outputs[$head_count]['CHILDREN'] = $accessableChildren;
$head_count++;
}
//}
return $outputs;
}
function get_cg_service_list(){
$query=$this->db->get_where('master_cg_service', array('status' => '1'));
return $query->result();
}
function get_CaregiverService_listById($id){
$query=$this->db->get_where('caregiver_service_mapping', array('caregiver_id' => $id))->result();
// echo '<pre>'; print_r($query); echo '</pre>'; exit;
return $query;
}
function caregiver_skill_list(){
$this->db->where('status','1');
$this->db->order_by('list_order', 'ASC');
$query = $this->db->get('master_cg_skills');
return $query->result();
}
function get_ethnicity_list(){
$query=$this->db->get_where('master_ethnicity', array('status' => '1'));
return $query->result();
}
function get_eyeColors(){
$query=$this->db->get_where('master_eye_color', array('status' => '1'));
return $query->result();
}
function get_hairColors(){
$query=$this->db->get_where('master_hair_color', array('status' => '1'));
return $query->result();
}
function get_SchoolList(){
$query=$this->db->get_where('master_schools', array('status' => '1'));
return $query->result();
}
function caregiver_skill_NameByid($id){
$query=$this->db->get_where('master_cg_skills', array('id' => $id))->row();
return $query->name;
}
function getProgress(){
$id = $this->session->userdata('user_id');
$query=$this->db->get_where('caregiver', array('ion_user_id' => $id))->row();
return $query->progress;
// print_r($query->progress);
// die;
}
function addVerificationHistory($data){
$this->db->insert('caregiver_verification_history', $data);
return $this->db->insert_id();
}
function addVerificationHistoryDetails($data){
$this->db->insert('caregiver_verification_history_details', $data);
return $this->db->insert_id();
}
function delete($id) {
$this->db->where('id', $id);
$this->db->delete('caregiver');
}
function addNurseDocuments($data){
$this->db->insert('users_documents', $data);
return $this->db->insert_id();
}
function filePathExistCheck($documentId,$ionid,$id){
$this->db->select('path,file_name')->where('ion_user_id', $ionid)->where('id', $documentId)->where('userid', $id)->where('status', 1);
$query = $this->db->get('users_documents');
return $query->row();
}
function getfilePathFromPrvs($doc_type,$ionid,$id){
$this->db->select('path,file_name,originalfilename')->where('ion_user_id', $ionid)->where('documents_type', $doc_type)->where('userid', $id)->where('status',0);
$query = $this->db->get('users_documents');
return $query->row();
}
function updateNurseDocuments($data,$id){
$this->db->where('id', $id);
$this->db->update('users_documents', $data);
}
function upsertDocuments($data){
$this->db->where('ion_user_id', $data['ion_user_id']);
$this->db->where('documents_type', $data['documents_type']);
$this->db->where('status', 1);
$this->db->update('users_documents',array('status'=>0));
// $test=$this->db->last_query();
// pre($test);die;
$this->db->insert('users_documents', $data);
return $this->db->insert_id();
}
function checkDocumentsExsist($ionid,$doc_type){
$this->db->where('ion_user_id', $ionid)->where('user_type', 'Caregiver')->where('documents_type', $doc_type)->where('status', 1);
$query = $this->db->get('users_documents')->row();
if($query)
return 1;
else
return 0;
}
function CargiverDocumentsUploaded($ionid){
$this->db->select('documents_type');
$this->db->where('ion_user_id', $ionid);
$this->db->where('user_type', 'Caregiver');
$this->db->where('status', 1);
$query = $this->db->get('users_documents')->result();
foreach ($query as $q) {
$output[]=$q->documents_type;
}
$this->db->select('b.Personal_References_Name,b.PPD_Quantiferonon');
$this->db->from('caregiver a');
$this->db->join('caregiver_step3 b', 'b.caregiver_table_id = a.id', 'left');
$this->db->where('a.ion_user_id',$ionid);
$query = $this->db->get()->row();
if($query->Personal_References_Name){
array_push($output, 'REF');
}
if($query->PPD_Quantiferonon){
array_push($output, 'PPD');
}
//return $this->db->last_query();
//return $query;
return $output;
}
function getNurseDocuments($ionid){
$this->db->where('ion_user_id', $ionid)->where('user_type', 'Caregiver')->where('status', 1);
$query = $this->db->get('users_documents');
// print_r($query);die;
return $query->result();
}
function deleteNursePreDocuments($doc_id){
$this->db->where('id', $doc_id);
$this->db->update('users_documents', array('status'=>0));
}
function update_cpr_certificateDates($caregiver_table_id,$data1,$cpr_type){
$this->db->where('userid',$caregiver_table_id);
$this->db->where('documents_type', $cpr_type);
$this->db->where('status',1);
$this->db->update('users_documents',$data1);
}
function getCaregiverPatient($id){
$this->db->distinct('a.patient_id');
$this->db->select('a.*,b.*');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->group_by('a.patient_id');
$this->db->where('a.caregiver_id',$id);
$query = $this->db->get()->result();
return $query;
}
function getPreviousCaregiverPatientSchedule($id){
$now=date("Y-m-d 00:00:00");
// $this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*');
$this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*, c.status as clock_in_out_status, c.clock_status, c.clock_in_time, c.clock_out_time');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->join('caregiver_patient_clock_in_out c', 'c.schedule_id = a.id', 'left');
$this->db->where('a.start<',$now);
$this->db->where("`a`.`caregiver_id`=$id AND `a`.`acceptance_status`!='Declined' ORDER BY FIELD(a.acceptance_status, 'Unconfirmed','Accepted','Declined') ASC");
$query = $this->db->get()->result();
return $query;
}
function getUpcommingCaregiverPatientSchedule($id){
$now=date("Y-m-d 00:00:00");
// $this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*');
$this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*, c.status as clock_in_out_status, c.clock_status, c.clock_in_time, c.clock_out_time');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->join('caregiver_patient_clock_in_out c', 'c.schedule_id = a.id', 'left');
$this->db->where('a.start>',$now);
$this->db->where("`a`.`caregiver_id`=$id AND `a`.`acceptance_status`!='Declined' ORDER BY FIELD(a.acceptance_status, 'Unconfirmed','Accepted','Declined') ASC");
$query = $this->db->get()->result();
return $query;
}
function masterScheduleList(){
$this->db->where('status','1');
$query = $this->db->get('master_schedule')->result();
return $query;
}
function masterScheduleWeekdayList(){
$this->db->where('status','1');
$this->db->group_by('week_day');
$query = $this->db->get('master_schedule')->result();
return $query;
}
function getTimeByDay($day){
$this->db->where('week_day', $day)->where('status','1');
$query = $this->db->get('master_schedule')->result();
return $query;
}
function saveCaregiverSchedule($data){
$this->db->insert('caregiver_schedule', $data);
return $this->db->insert_id();
}
function getCaregiverSchedule($id){
$this->db->where('caregiver_id', $id)->where('status','1');
$query = $this->db->get('caregiver_schedule')->result();
return $query;
}
function getCaregiverEventSchedule($id){
$this->db->where('status','1');
$this->db->where('caregiver_id',$id);
$query = $this->db->get('caregiver_schedule')->result();
return $query;
}
function updateCaregiverEventSchedule($data,$id){
$this->db->where('id', $id);
$query=$this->db->update('caregiver_schedule', $data);
return $this->db->affected_rows();
}
function deleteCaregiverEventSchedule($id){
$this->db->where('id', $id);
$query=$this->db->update('caregiver_schedule', array('status'=>'0'));
return $this->db->affected_rows();
}
function deleteSchedule($scheduleId,$caregiverId,$update_by){
$update_on=date ('Y-m-d H:i:s', now());
$data=array(
'update_by'=>$update_by,
'update_on'=>$update_on,
'status'=>'0',
);
$this->db->where('caregiver_id', $caregiverId)->where('schedule_master_id', $scheduleId)->where('status', '1');
$query=$this->db->update('caregiver_schedule', $data);
return $this->db->affected_rows();
}
function getCountryIdByName($name) {
$this->db->select("id");
$this->db->from("master_country");
$this->db->where('name', $name);
$this->db->where('status',1);
$query = $this->db->get();
return $query->row();
}
function getEthnicityIdByName($name) {
$this->db->select("id");
$this->db->from("master_ethnicity");
$this->db->where('name', $name);
$this->db->where('status',1);
$query = $this->db->get();
return $query->row();
}
function updateAcceptance($post)
{
$scheduleId = $post["scheduleId"];
$decision = $post["decision"];
$rejection_reason = $post["rejectionReason"];
$this->db->where('id', $scheduleId);
$query=$this->db->update('caregiver_schedule',
array(
'acceptance_status'=>$decision,
'rejection_reason' =>$rejection_reason
)
);
return $this->db->affected_rows();
}
function getScheduleByLimitBySearch($limit, $start, $search, $orderColumn, $orderType, $caregiverId) {
if($orderColumn==0)
$this->db->order_by('patient_id', $orderType);
else if($orderColumn==1)
$this->db->order_by('start', $orderType);
else if($orderColumn==2)
$this->db->order_by('start', $orderType);
else if($orderColumn==3)
$this->db->order_by('end', $orderType);
$this->db->like('patient_id', $search);
$this->db->or_like('start', $search);
$this->db->or_like('end', $search);
$this->db->where('caregiver_id',$caregiverId);
$this->db->where('status','1');
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver_schedule');
return $query->result();
}
function getScheduleByLimit($limit, $start, $orderColumn, $orderType, $caregiverId) {
if($orderColumn==0)
$this->db->order_by('patient_id', $orderType);
else if($orderColumn==1)
$this->db->order_by('start', $orderType);
else if($orderColumn==2)
$this->db->order_by('start', $orderType);
else if($orderColumn==3)
$this->db->order_by('end', $orderType);
$this->db->where('caregiver_id',$caregiverId);
$this->db->where('status','1');
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver_schedule')->result();
return $query;
}
function saveAvailability($data){
$created_by=$this->session->userdata('user_id');
$created_on=date ('Y-m-d H:i:s', now());
$data['color']='#2D95BF';
$data['start']=$data['Sdate'].' '.$data['startTime'];
$data['end']=$data['Sdate'].' '.$data['endTime'];
$data['caregiver_id']=$data['caregiver_id'];
$data['created_by']=$created_by;
$data['created_on']=$created_on;
$data['status']=1;
unset($data['startTime']);
unset($data['endTime']);
unset($data['Sdate']);
//print_r($data);die;
$this->db->insert('caregiver_availability', $data);
$insertId=$this->db->insert_id();
if($insertId>0){ return true; }else{ return false; }
}
function caregiverScheduleById($caregiverId){
$now=date("Y-m-d 00:00:00");
$this->db->select('a.*,b.first_name,b.last_name');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->where('a.caregiver_id',$caregiverId);
$this->db->where('a.start>',$now);
$this->db->where('status','1');
$this->db->order_by('a.start', 'asc');
$query = $this->db->get()->result();
//echo $this->db->last_query();die;
return $query;
}
function availableScheduleById($caregiverId){
$now=date("Y-m-d H:i:s");
$this->db->where('caregiver_id',$caregiverId);
$this->db->where('start>',$now);
$this->db->where('status','1');
$this->db->order_by('start', 'asc');
$query = $this->db->get('caregiver_availability')->result();
//echo $this->db->last_query();die;
return $query;
}
function previousScheduleById($caregiverId){
$now=date("Y-m-d 00:00:00");
$this->db->select('a.*,b.first_name,b.last_name');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->where('a.caregiver_id',$caregiverId);
$this->db->where('a.start<',$now);
$this->db->where('status','1');
$this->db->order_by('a.start', 'asc');
$query = $this->db->get()->result();
return $query;
}
public function getServices(){
$skillId=$_GET['skillId'];
$heads = $this->db->get_where('master_service_head',array('skill_id'=>$skillId))->result();
$head_count=0;
foreach($heads as $head){
$subHeads = $this->db->get_where('master_cg_service',array('service_head_id'=>$head->id))->result();
$sub_head_count=0;
$accessableChildren = array();
foreach($subHeads as $subHead){
$children = $this->db->get_where('master_cg_service',array('parent_id'=>$subHead->id))->result();
$child_count=0;
$accessableChildren[$sub_head_count]['ID'] = $subHead->id;
$accessableChildren[$sub_head_count]['NAME'] = $subHead->service_name;
$accessableChildren[$sub_head_count]['PARENT_ID'] = $subHead->parent_id;
$accessableChildren2 = array();
foreach( $children as $child){
$accessableChildren2[$child_count]['ID'] = $child->id;
$accessableChildren2[$child_count]['NAME'] = $child->service_name;
$accessableChildren2[$child_count]['PARENT_ID'] = $child->parent_id;
// $output[$head_count]['subHead'][$sub_head_count]['child'][$child_count] = $child->service_name;
$child_count++;
}
$accessableChildren[$sub_head_count]['CHILDREN'] = $accessableChildren2;
//$output[$head_count]['subHead'][$sub_head_count] = $subHead->service_name;
$sub_head_count++;
}
$outputs[$head_count]['NAME'] = $head->service_head_name;
$outputs[$head_count]['ID'] = $head->id;
$outputs[$head_count]['CHILDREN'] = $accessableChildren;
$head_count++;
}
// echo '<pre>'; print_r($outputs); echo '</pre>';
//die;
// foreach ($outputs as $val) {
// echo count($val['CHILDREN']);
// }
//die;
$output='';
//if($service_count>0){
$output.='
<label for="exampleInputEmail1" class="required-field">List of Service</label>
<select name="service[]" id="listOfService" class="form-control multiselect-class" multiple required data-error="Please select a service." style="width:100%">
';
foreach ($outputs as $val) {
if(count($val['CHILDREN']) > 0){
$output.='<optgroup label="'.$val['NAME'].'">';
foreach($val['CHILDREN'] as $child){
if(count($child['CHILDREN']) > 0){
$output.='<optgroup label="'.$child['NAME'].'">';
$output.='</optgroup>';
foreach($child['CHILDREN'] as $subChild){
$output.='<option value="'.$subChild['ID'].'" >'
.$subChild['NAME'].'</option>';
}
}
else if($child['PARENT_ID'] == 0){
$output.='<option value="'.$child['ID'].'" >'
.$child['NAME'].'</option>';
}
}
} else if($val['PARENT_ID'] == 0){
$output.='<option value="'.$val['ID'].'" >'
.$val['NAME'].'</option>';
}
$output.='</optgroup>';
}
$output.=' </select>
<div class="help-block with-errors"></div>
';
//}
$output.='<script>';
$output.="$('#listOfService').select2();";
$output.='</script>';
return $output;
}
function getServiceHeadByType($caregiver_type){
// $this->db->select("master_cg_service.service_head_id");
// $this->db->select("master_service_head.service_head_name");
// $this->db->select("master_service_head.priority");
// $this->db->where('master_cg_service.skill_id', $caregiver_type);
// $this->db->from("master_cg_service");
// $this->db->join("master_service_head", "master_service_head.id = master_cg_service.service_head_id");
// $this->db->group_by("master_cg_service.service_head_id");
// $this->db->order_by('master_service_head.priority', 'asc');
$this->db->select("master_skill_service_head_mapping.service_head_id as service_head_id,master_service_head.service_head_name, IFNULL(master_skill_service_head_mapping.priority,9999) as hpriority");
$this->db->where('master_skill_service_head_mapping.skill_id', $caregiver_type);
$this->db->where('master_service_head.status', '1');
$this->db->order_by('hpriority', 'asc');
$this->db->from('master_skill_service_head_mapping');
$this->db->join('master_service_head','master_service_head.id=master_skill_service_head_mapping.service_head_id','left');
$query = $this->db->get()->result();
// echo $this->db->last_query();echo '<br>';die;
return $query;
}
function getServiceHeadByType2($caregiver_type)
{
$this->db->select("master_service_head.id as service_head_id,master_service_head.service_head_name,master_service_head.required, IFNULL(master_service_head.priority,9999) as hpriority");
$this->db->where('master_service_head.skill_id', $caregiver_type);
$this->db->where('master_service_head.status', '1');
$this->db->order_by('hpriority', 'asc');
$this->db->from('master_service_head');
$query = $this->db->get()->result();
return $query;
}
function getExperienceByHeadId($caregiver_type,$ServiceHeadId){
// echo '||'.$caregiver_type.'||'.$ServiceHeadId;
$this->db->select("master_cg_service.*");
// $this->db->where('master_cg_service.skill_id', $caregiver_type);
$this->db->where('master_cg_service.service_head_id', $ServiceHeadId);
$this->db->where('master_cg_service.status', '1');
$this->db->order_by('master_cg_service.priority', 'asc');
$this->db->from("master_cg_service");
return $query = $this->db->get()->result();
}
function exp_by_condition(){
$query=$this->db->get_where('experience_label', array('experience_group' => '1'));
return $query->result();
}
function exp_by_demographics(){
$this->db->order_by('showOrder','asc');
$query=$this->db->get_where('experience_label', array('experience_group' => '2'));
return $query->result();
}
function rn_exp(){
$query=$this->db->get_where('experience_label', array('skill_id' => '4'));
return $query->result();
}
function lpn_exp(){
$query=$this->db->get_where('experience_label', array('skill_id' => '5'));
return $query->result();
}
function updateCaregiverDoc($id){
$this->db->where('id', $id);
$this->db->delete('users_documents');
}
function religious_preferences(){
$query=$this->db->get_where('master_religious');
return $query->result();
}
function getPendingApplication() {
$this->db->where('progress <' ,'100');
$query = $this->db->get('caregiver');
//echo '<pre>'; print_r($query); echo '</pre>';die;
return $query->result();
}
function saveCaregiverStep($tbl, $data, $midid)
{
// echo 'TABLE NAME : '.$tbl;echo '<br>';
// echo '<pre>'; print_r($data);echo '<br>';die;
if($tbl=='caregiver'){
$this->db->where('id', $midid);
}else{
$this->db->where('caregiver_table_id', $midid);
}
$this->db->update($tbl, $data);
// echo $this->db->last_query();
// echo '<br>';
// die;
$effected_row=$this->db->affected_rows();
if($effected_row>0){ return true; }else{ return false; }
}
function RejectAcceptance($data){
$id=$data['id'];
$data['submited_for_verification']='no';
unset($data['id']);
$this->db->where('id', $id);
$this->db->update('caregiver', $data);
// echo $this->db->last_query();die;
$effected_row=$this->db->affected_rows();
if($effected_row>0){ return true; }else{ return false; }
}
function updateShiftPreferances($id,$pref)
{
$pref=json_decode($pref);
if(!empty($pref)){
$this->db->where('nurse_id', $id);
$this->db->delete('schedule_preferences');
foreach ($pref as $prefData)
{
$data = array();
$data['nurse_id'] = $id;
$data['day'] = $prefData->day;
$data['pref_type'] = $prefData->shift_type;
if($prefData->shift_type == 'shift')
{
$data['session'] = $prefData->type_val;
}
else
{
$data['time'] = $prefData->type_val;
}
$this->db->insert('schedule_preferences', $data);
}
}
}
function getShiftPref($id)
{
$this->db->where('nurse_id' ,$id);
$query = $this->db->get('schedule_preferences');
return $query->result();
}
function get_user_type($eml)
{
$this->db->select('a2.*');
//$this->db->select("caregiver.id as id");
$this->db->from('users a1');
$this->db->join('users_groups a2', 'a1.id = a2.user_id', 'left');
$this->db->where('a1.email', $eml);
$query = $this->db->get();
return $query->result();
}
function saveOnboardToken($data)
{
$userId = $data['user_id'];
$this->db->where('id', $userId);
$cg = $this->db->get('caregiver')->row();
$qualification_type = $cg->qualification_type;
$this->db->select('id');
$this->db->where('qualification_type', $qualification_type);
$query = $this->db->get('onboardvideo');
$videos = $query->result();
$data['videos'] = json_encode($videos);
$this->db->insert('caregiver_onboard_registration_token', $data);
}
function getNameBysearch($search,$orderColumn, $orderType) {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('video_slug', $orderType);
else if($orderColumn==2)
$this->db->order_by('video_title', $orderType);
$this->db->like('id', $search);
$this->db->or_like('video_slug', $search);
$this->db->or_like('video_title', $search);
$query = $this->db->get('onboardvideo');
return $query->result();
}
function getvideoByLimit($limit, $start, $orderColumn, $orderType) {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('video_slug', $orderType);
else if($orderColumn==2)
$this->db->order_by('video_title', $orderType);
$this->db->limit($limit, $start);
$query = $this->db->get('onboardvideo');
return $query->result();
}
function getVideoByLimitBySearch($limit, $start, $search) {
$this->db->like('id', $search);
$this->db->order_by('id', 'desc');
$this->db->or_like('video_slug', $search);
$this->db->or_like('video_title', $search);
$this->db->limit($limit, $start);
$query = $this->db->get('onboardvideo');
return $query->result();
}
public function videoAssigned($uid)
{
$this->db->where('user_id', $uid);
$query = $this->db->get('caregiver_onboard_registration_token');
$videos = $query->row();
return $videos;
}
public function getVideoInteractionList($qualification_type,$uid)
{
$this->db->where('qualification_type', $qualification_type);
$query = $this->db->get('onboardvideo');
$videos = $query->result();
foreach($videos as $video)
{
$this->db->where('video_id', $video->id);
$this->db->where('user_id', $uid);
$examResultList = $this->db->get('quizexamresult');
$examCount = $examResultList->num_rows();
$examRes = $examResultList->row();
if($examCount > 0)
$video->marks_percentage =$examRes->marks_percentage;
else
$video->marks_percentage='NAN';
if($examCount > 0)
{
$video->watchStatus = 1;
}
else{
$video->watchStatus = 0;
}
}
return $videos;
// _die($videos);
}
public function getVideoInteractionChatHistory($videoId,$cgId)
{
$this->db->where('user_id', $cgId);
$this->db->where('video_id', $videoId);
$query = $this->db->get('caregiver_video_query');
return $query->result();
}
public function getChatListByUserID($cgId)
{
$this->db->where('user_id', $cgId);
$query = $this->db->get('caregiver_video_query');
return $query->result();
}
public function getExamResultByUserID($cgId)
{
$this->db->where('user_id', $cgId);
$query = $this->db->get('quizresult_qa');
return $query->result();
}
public function add_caregiver_background_check($data)
{
$this->db->insert('caregiver_background_check', $data);
return $this->db->insert_id();
}
public function update_caregiver_background_check($backGround_ID,$data)
{
$this->db->where('id', $backGround_ID);
$this->db->update('caregiver_background_check', $data);
}
public function getBackgroundCheckReportList()
{
$query = $this->db->get('caregiver_background_check');
return $query->result();
}
public function getBackgroundCheckReport($cgId)
{
$this->db->where('cg_id', $cgId);
$this->db->or_where('id',$cgId);
$query = $this->db->get('caregiver_background_check');
return $query->result();
}
function DeleteOtherReferencesByCaregiverId($caregiver_id){
$this->db->where('caregiver_table_id', $caregiver_id);
$query = $this->db->get('caregiver_other_references')->result();
if($query){
$this->db->where('caregiver_table_id', $caregiver_id);
$this->db->delete('caregiver_other_references');
return true;
}else{
return true;
}
}
function saveOtherReferences($data, $caregiver_id){
echo "<pre>";print_r($data);exit;
$data['caregiver_table_id'] = $caregiver_id;
$this->db->insert('caregiver_other_references',$data);
return true;
}
function saveOtherReferences2($data,$caregiver_id)
{
$data['caregiver_table_id']=$caregiver_id;
$this->db->insert('caregiver_other_references', $data);
return $this->db->insert_id();
}
function UpdateOtherReferences2($refId,$docId)
{
$data['users_documents_id']=$docId;
$this->db->where('id',$refId);
$this->db->update('caregiver_other_references', $data);
}
function UpdateOtherReferences3($refId,$data)
{
$this->db->where('id',$refId);
$this->db->update('caregiver_other_references', $data);
}
function deleteOtherReference($id){
$this->db->where('id', $id);
$this->db->delete('caregiver_other_references');
}
function getOtherReferenceById($id){
$this->db->where('status','1');
$this->db->where('caregiver_table_id',$id);
$query = $this->db->get('caregiver_other_references')->result();
return $query;
}
function getLicensesById($id){
$this->db->where('status','1');
$this->db->where('caregiver_table_id',$id);
$query = $this->db->get('caregiver_licenses')->result();
return $query;
}
function DeleteLicenseDataByCaregiverId($caregiver_id){
$this->db->where('caregiver_table_id', $caregiver_id);
$query = $this->db->get('caregiver_licenses')->result();
if($query){
$this->db->where('caregiver_table_id', $caregiver_id);
$this->db->delete('caregiver_licenses');
return true;
}else{
return true;
}
}
function saveLicenseData($data, $caregiver_id){
// echo "<pre>";print_r($data);exit;
$data['caregiver_table_id'] = $caregiver_id;
$this->db->insert('caregiver_licenses', $data);
return true;
}
function deleteLicenseData($id){
$this->db->where('id', $id);
$this->db->update('caregiver_licenses', array('status'=>0));
}
function updateLicenseDocuments($data,$id,$license_id){
// print_r( $data);exit;
$this->db->where('caregiver_table_id', $id);
$this->db->where('id', $license_id);
$this->db->update('caregiver_licenses', $data);
}
function getOtherReferenceByIonId($id) {
$this->db->select('a1.*');
//$this->db->select("caregiver.id as id");
$this->db->from('caregiver_other_references a1');
$this->db->join('caregiver a2', 'a1.caregiver_table_id = a2.id');
$this->db->where('a2.ion_user_id', $id);
$this->db->where('a1.status', 1);
$query = $this->db->get();
return $query->result();
}
function getLicensesByIonId($id) {
$this->db->select('a1.*');
//$this->db->select("caregiver.id as id");
$this->db->from('caregiver_licenses a1');
$this->db->join('caregiver a2', 'a1.caregiver_table_id = a2.id');
$this->db->where('a2.ion_user_id', $id);
$this->db->where('a1.status', 1);
$query = $this->db->get();
return $query->result();
}
function getInformationForEmail($id){
$this->db->select('email,ion_user_id');
$this->db->from('caregiver');
$this->db->where('id', $id);
$query = $this->db->get();
return $query->row();
}
function getMailBody($type){
$this->db->select('*');
$this->db->from('mail_body_settings');
$this->db->where('slug', $type);
$this->db->where('status', 1);
$query = $this->db->get();
return $query->row();
}
function insertMailLog($data){
// _die($data['ion_user_id']);
$this->db->select('*');
$this->db->from('mail_log');
$this->db->where('caregiver_table_id', $data['caregiver_table_id']);
$this->db->where('ion_user_id', $data['ion_user_id']);
$this->db->where('type', $data['type']);
$query = $this->db->get()->row();
// echo $this->db->last_query();die;
if($query){
$mail_count = $query->mail_count + 1;
$mainId = $query->id;
$data2 = array('mail_count' => $mail_count,'email_send_date'=>$data['email_send_date']);
$this->db->where('id', $mainId);
$this->db->update('mail_log', $data2);
}else{
$this->db->insert("mail_log", $data);
$mainId=$this->db->insert_id();
}
return $mainId;
}
function getCaregiverStatus(){
$this->db->select('a1.*,a2.employementHistory2,a3.created_on');
//$this->db->select("caregiver.id as id");
$this->db->from('caregiver a1');
$this->db->join('caregiver_step2 a2', 'a2.caregiver_table_id = a1.id');
$this->db->join('users a3', 'a3.id = a1.ion_user_id');
$this->db->where('a1.submited_for_verification', 'no');
$this->db->where('a1.qualification_type', 4);
$query = $this->db->get();
return $query->result_array();
}
function getMailLogById($caregiver_id,$ion_user_id,$type){
$this->db->select('*');
$this->db->from('mail_log');
$this->db->where('caregiver_table_id', $caregiver_id);
$this->db->where('ion_user_id', $ion_user_id);
$this->db->where('type', $type);
$query = $this->db->get();
return $query->row();
}
function updateMailCount($mailLogId,$mail_count){
$mail_count = array('mail_count' => $mail_count);
$this->db->where('id', $mailLogId);
$this->db->update('mail_log', $mail_count);
return $this->db->affected_rows();
}
//added on 21-10-2021
function updateMailLog($mailLogId,$data)
{
$this->db->where('id', $mailLogId);
$this->db->update('mail_log', $data);
return $mailLogId;
}
//ending added on 21-10-2021
function updateOtherReferenceDocuments($data,$id,$other_reference_id){
// print_r( $data);exit;
$this->db->where('caregiver_table_id', $id);
$this->db->where('id', $other_reference_id);
$this->db->update('caregiver_other_references', $data);
}
function get_referral_source(){
$this->db->order_by('name', 'ASC');
$query=$this->db->get_where('master_cg_referal_source', array('status' => '1'));
return $query->result();
}
function saveCaregivercertificate($tbl, $data, $id, $type)
{
// echo 'TABLE NAME : '.$tbl;echo $id; '<br>';
// echo '<pre>'; print_r($data);echo '<br>';die;
$this->db->select('*');
$this->db->from($tbl);
$this->db->where('caregiver_table_id', $id);
$this->db->where('type', $type);
$query = $this->db->get()->row();
if($query) {
$this->db->where('caregiver_table_id', $id);
$this->db->where('type', $type);
$this->db->update($tbl, $data);
}else{
$this->db->insert($tbl, $data);
}
// echo $this->db->last_query();echo '<br>';die;
}
function getCertificatesById($id){
$this->db->where('caregiver_table_id',$id);
$query = $this->db->get('caregiver_certificate')->result();
return $query;
}
function getCertificatesByStatus($id){
$this->db->where('caregiver_table_id',$id);
$this->db->where('status',1);
$query = $this->db->get('caregiver_certificate')->result();
return $query;
}
function updateCertificateDocuments($data,$id,$certficateID){
// print_r( $data);exit;
$this->db->where('caregiver_table_id', $id);
$this->db->where('id', $certficateID);
$this->db->update('caregiver_certificate', $data);
}
function getRelationshipName($id){
$this->db->select('name');
$this->db->from('master_relations');
$this->db->where('id', $id);
$query = $this->db->get()->row();
return $query;
}
// added on 26-10-2021
function insertIntoMailLogTable($data,$emailsendDate)
{
if($emailsendDate==""){
$data['email_send_date']=gmdate("Y-m-d H:i:s");
$query=$this->db->insert('mail_log', $data);
if($query){
$insertId=$this->db->insert_id();
$this->db->where('id',$insertId);
$this->db->update('mail_log',array('send_status'=>"1",'email_send_at'=>$data['email_send_date']));
$this->db->where('id',$insertId);
$query=$this->db->get('mail_log')->row();
return $query;
}
}
else{
foreach($emailsendDate as $nextEmailDate){
$data['email_send_date']=$nextEmailDate;
$query=$this->db->insert('mail_log', $data);
}
}
}
function getFromMailLogTable($id,$ion_user_id,$type)
{
$this->db->where('caregiver_table_id',$id);
$this->db->where('ion_user_id',$ion_user_id);
$this->db->where('type',$type);
$this->db->order_by('id', 'ASC');
$query=$this->db->get('mail_log');
$rows=$query->num_rows();
if($rows>0){
return $query->result();
}else{
return false;
}
}
function updateMailLogTable($mainId,$diffTime)
{
if($diffTime==""){
$cdt=gmdate("Y-m-d H:i:s"); //in UTC, cdt = current date time
$this->db->where('id',$mainId[0]);
$this->db->update('mail_log',array('email_send_date'=>$cdt));
$this->db->where('id',$mainId[0]);
$query=$this->db->get('mail_log')->row();
return $query;
}else{
$length=count($mainId);
for($i=1;$i<$length;$i++){
$this->db->where('id',$mainId[$i]);
// $strdt=strtotime($this->db->get('mail_log')->row()->email_send_date)+$diffTime;
$query=$this->db->get('mail_log')->row();
$sst=$query->send_status;
if($sst==0){
$strdt=(strtotime(($query->email_send_date))+$diffTime);
$dt=date("Y-m-d H:i:s",$strdt);
$this->db->where('id',$mainId[$i]);
$this->db->update('mail_log',array('email_send_date'=>$dt));
}
}
}
}
function cronUpdateMailLogTable($mainId,$cdt)
{
$this->db->where('id',$mainId);
$this->db->update('mail_log',array('send_status'=>1,'email_send_at'=>$cdt));
}
//ending added on 26-10-2021
function getReferralSourceName($id){
$this->db->select('name');
$this->db->from('master_cg_referal_source');
$this->db->where('id', $id);
$query = $this->db->get()->row();
return $query;
}
function getServiceHead($caregiver_type,$group_id){
// $this->db->select("master_cg_service.service_head_id");
// $this->db->select("master_service_head.service_head_name");
// $this->db->select("master_service_head.priority");
// $this->db->where('master_cg_service.skill_id', $caregiver_type);
// $this->db->from("master_cg_service");
// $this->db->join("master_service_head", "master_service_head.id = master_cg_service.service_head_id");
// $this->db->group_by("master_cg_service.service_head_id");
// $this->db->order_by('master_service_head.priority', 'asc');
$this->db->select("master_skill_service_head_mapping.service_head_id as service_head_id,master_service_head.service_head_name, IFNULL(master_skill_service_head_mapping.priority,9999) as hpriority");
$this->db->where('master_skill_service_head_mapping.skill_id', $caregiver_type);
$this->db->where('master_skill_service_head_mapping.service_head_id', $group_id);
$this->db->where('master_service_head.status', '1');
$this->db->order_by('hpriority', 'asc');
$this->db->from('master_skill_service_head_mapping');
$this->db->join('master_service_head','master_service_head.id=master_skill_service_head_mapping.service_head_id','left');
$query = $this->db->get()->row();
// echo $this->db->last_query();echo '<br>';die;
return $query;
}
// function getExperienceByHeadId($caregiver_type,$ServiceHeadId){
// // echo '||'.$caregiver_type.'||'.$ServiceHeadId;
// $this->db->select("master_cg_service.*");
// // $this->db->where('master_cg_service.skill_id', $caregiver_type);
// $this->db->where('master_cg_service.service_head_id', $ServiceHeadId);
// $this->db->where('master_cg_service.status', '1');
// $this->db->order_by('master_cg_service.priority', 'asc');
// $this->db->from("master_cg_service");
// return $query = $this->db->get()->result();
// }
function getCareExp($caregiver_type,$group_id,$cg_id){
// _die($group_id);
$this->db->select('caregiver_experience.*,master_cg_service.service_name');
$this->db->where('caregiver_experience.caregiver_id',$cg_id);
$this->db->where('caregiver_experience.group_id',$group_id);
// $this->db->where('caregiver_experience.skill_id',$caregiver_type);
$this->db->from('caregiver_experience');
$this->db->join('master_cg_service','master_cg_service.id=caregiver_experience.experience_id');
$query=$this->db->get();
return $query->result();
}
function demographics_exp_byId($exp_id){
$this->db->order_by('showOrder','asc');
$query=$this->db->get_where('experience_label', array('experience_group' => '2','id' => $exp_id));
return $query->row();
}
function get_website_setting(){
$this->db->select('*');
$this->db->from('website_settings');
$query=$this->db->get();
return $query->row();
}
// for caregiver disclosure tabs in caregiver panel
function getQualificationEmployeeType($caregiverId){
$this->db->select("a.qualification_type,b.employee_type");
$this->db->from('caregiver a');
$this->db->join('caregiver_step3 b', 'b.caregiver_table_id = a.id', 'left');
$this->db->where('a.id',$caregiverId);
$query = $this->db->get()->row();
return $query;
}
function updateForConcentSignature($sigData,$id)
{
$this->db->where('caregiver_table_id',$id);
$this->db->update('caregiver_step2',$sigData);
}
function getSignatureInfo($caregiverId)
{
$this->db->where('caregiver_id',$caregiverId);
$result=$this->db->get('caregiver_document_signature')->result();
return $result;
}
function insertExtraPdfInfo($data)
{
$this->db->where('caregiver_id',$data['caregiver_id']);
$this->db->where('document_type',$data['document_type']);
$this->db->from('extra_editable_pdf_info');
$rows=$this->db->get()->num_rows();
// pre($rows);die();
if($rows>0){
$this->db->where('caregiver_id',$data['caregiver_id']);
$this->db->where('document_type',$data['document_type']);
$this->db->update('extra_editable_pdf_info',$data);
$query=$this->db->affected_rows();
if($query){
return true;
}else{
return false;
}
}else{
$query=$this->db->insert('extra_editable_pdf_info', $data);
if($query){
return true;
}else{
return false;
}
}
}
function getExtraInfoOfPdf($cg_id,$document_details)
{
if($document_details==""){
$this->db->where('caregiver_id',$cg_id);
$this->db->from('extra_editable_pdf_info');
$result=$this->db->get()->result();
return $result;
}else{
$this->db->where('caregiver_id',$cg_id);
$this->db->where('document_type',$document_details);
$this->db->from('extra_editable_pdf_info');
$result=$this->db->get()->row();
return $result;
}
}
function getFcmToken($caregiver_id){
$this->db->select("b.fcm_token, a.id");
$this->db->from('caregiver a');
$this->db->join('users b', 'b.id = a.ion_user_id', 'left');
$this->db->where('a.id',$caregiver_id);
$query = $this->db->get()->row();
return $query;
}
function getFcmTokenByScheduleId($scheduleId){
$this->db->select("b.fcm_token,a.id as schedule_id, c.ion_user_id");
$this->db->from('caregiver_schedule a');
$this->db->join('caregiver c', 'c.id = a.caregiver_id', 'left');
$this->db->join('users b', 'b.id = c.ion_user_id', 'left');
$this->db->where('a.id',$scheduleId);
$query = $this->db->get()->row();
return $query;
}
function getServiceHeads($cg_id,$cg_type)
{
$this->db->select("a.*,IFNULL(a.priority,9999) as priority");
$this->db->where('skill_id',$cg_type);
$this->db->where('status','1');
$this->db->order_by('priority','asc');
$this->db->from('master_service_head a');
$query=$this->db->get();
$result=$query->result();
foreach($result as $res){
$this->db->where('service_head_id',$res->id);
$this->db->where('status','1');
$this->db->order_by('priority','asc');
$this->db->from('master_cg_service b');
$query2=$this->db->get();
$result2=$query2->result();
$res->data=$result2;
}
return $result;
}
function getExperienceInfo($cg_id)
{
$this->db->where('caregiver_id',$cg_id);
$this->db->order_by('group_id','asc');
$this->db->from('caregiver_experience');
$query=$this->db->get();
$result=$query->result();
$experience_array=[];
foreach($result as $res){
$experience[$res->group_id][$res->experience_id]=$res->experience_value;
}
return $experience;
}
function getOtherReferences($cg_id)
{
$this->db->where('caregiver_table_id',$cg_id);
$this->db->from('caregiver_step3');
$query=$this->db->get();
return $query->row();
}
function getNurseLicenseInfoByDocType($cg_id,$doc_type)
{
$this->db->where('caregiver_table_id',$cg_id);
// $this->db->where('documents_type',$doc_type);
$this->db->from('caregiver_licenses');
$query=$this->db->get();
return $query->result();
}
function checkCXRStatus($cg_id)
{
$this->db->select("a.PPD_Quantiferonon_status as status,a.CXR");
$this->db->where('caregiver_table_id',$cg_id);
$this->db->from('caregiver_step3 a');
$query=$this->db->get();
return $query->row();
}
function getCgExperienceInfo($cg_id)
{
$this->db->where('caregiver_id',$cg_id);
$this->db->order_by('group_id','asc');
$this->db->from('caregiver_experience');
$query=$this->db->get();
$result=$query->result();
// $experience_array=[];
// foreach($result as $res){
// $experience[$res->group_id][$res->experience_id]=$res->experience_value;
// }
return $result;
}
function get_experince_value($caregiverId,$expLblId){
// _die($group_id);
$this->db->select('caregiver_experience.*');
$this->db->where('caregiver_experience.caregiver_id',$caregiverId);
$this->db->where('caregiver_experience.experience_id',$expLblId);
// $this->db->where('caregiver_experience.skill_id',$caregiver_type);
$this->db->from('caregiver_experience');
$query=$this->db->get();
return $query->row();
}
function getAllCaregiverList($limit, $start, $orderColumn, $orderType, $search="") {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('qualification_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('fname', $orderType);
else if($orderColumn==3)
$this->db->order_by('email', $orderType);
else if($orderColumn==4)
$this->db->order_by('phone', $orderType);
if(isset($search) && $search!='')
{
$this->db->like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
}
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver');
return $query->result();
}
function getAllCaregiverListCount($limit, $start, $orderColumn, $orderType, $search="") {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('qualification_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('fname', $orderType);
else if($orderColumn==3)
$this->db->order_by('email', $orderType);
else if($orderColumn==4)
$this->db->order_by('phone', $orderType);
if(isset($search) && $search!='')
{
$this->db->like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
}
$query = $this->db->get('caregiver');
return $query->result();
}
function getAllCaregiverDocs($caregiver_id, $limit, $start, $orderColumn, $orderType, $search="") {
if($orderColumn==0)
$this->db->order_by('users_documents.id', $orderType);
else if($orderColumn==1)
$this->db->order_by('users_documents.documents_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('document_name.name', $orderType);
else if($orderColumn==3)
$this->db->order_by('users_documents.date_completed', $orderType);
else if($orderColumn==4)
$this->db->order_by('users_documents.expiration_date', $orderType);
if(isset($search) && $search!='')
{
$this->db->group_start();
$this->db->like('users_documents.documents_type', $search);
$this->db->or_like('document_name.name', $search);
// $this->db->or_like('email', $search);
$this->db->group_end();
}
$this->db->select('users_documents.*,document_name.name,document_name.short_code');
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
$this->db->where('users_documents.userid', $caregiver_id);
$this->db->where('users_documents.documents_type !=', 'PHO');
$this->db->where('users_documents.status', '1');
$this->db->limit($limit, $start);
$query = $this->db->get('users_documents');
// _die($this->db->last_query());
return $query->result();
}
function getAllCaregiverDocsCount($caregiver_id, $limit, $start, $orderColumn, $orderType, $search="") {
if($orderColumn==0)
$this->db->order_by('users_documents.id', $orderType);
else if($orderColumn==1)
$this->db->order_by('users_documents.documents_type', $orderType);
else if($orderColumn==2)
$this->db->order_by('document_name.name', $orderType);
else if($orderColumn==3)
$this->db->order_by('users_documents.date_completed', $orderType);
else if($orderColumn==4)
$this->db->order_by('users_documents.expiration_date', $orderType);
if(isset($search) && $search!='')
{
$this->db->group_start();
$this->db->like('document_name.short_code', $search);
$this->db->or_like('document_name.name', $search);
// $this->db->or_like('email', $search);
$this->db->group_end();
}
$this->db->select('users_documents.*,document_name.name,document_name.short_code');
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
$this->db->where('users_documents.userid', $caregiver_id);
$this->db->where('users_documents.documents_type !=', 'PHO');
$this->db->where('users_documents.status', '1');
$query = $this->db->get('users_documents');
return $query->result();
}
function getDocDetails($doc_id){
$this->db->select('users_documents.*,document_mail_template.short_code,document_mail_template.message,document_mail_template.subject,document_mail_template.name');
$this->db->join('document_mail_template', 'users_documents.documents_type = document_mail_template.short_code');
$this->db->where('users_documents.id', $doc_id);
$this->db->where('users_documents.status', '1');
$query = $this->db->get('users_documents');
return $query->row();
}
function getDisclosure($cg_type,$cg_id){
$this->db->select('disclosure_page_name.*');
$this->db->like('disclosure_page_name.caregiver_type', $cg_type);
$this->db->order_by('disclosure_page_name.name');
$query = $this->db->get('disclosure_page_name')->result();
// _die($this->db->last_query());
foreach($query as $key=>$val){
$short_code = $val->short_code;
// _die($short_code);
$this->db->select('caregiver_document_signature.*');
$this->db->where('caregiver_id', $cg_id);
$this->db->where('document_details', $short_code);
$query1 = $this->db->get('caregiver_document_signature')->row();
if($query1){
$query[$key]->disclosure_available = 'available';
$query[$key]->doc=$query1;
}else{
$query[$key]->disclosure_available = 'not available';
}
}
// _die($query);
return $query;
}
function getDisclosureByType($type){
// return $type;
$this->db->select('short_code,name');
$where = "FIND_IN_SET('".$type."', caregiver_type)";
$this->db->where($where);
$this->db->where('location','1');
$this->db->order_by('name');
$query = $this->db->get('disclosure_page_name')->result_array();
return $query;
// _die($this->db->last_query());
}
function getOnBoardingDocsByType($type){
// return $type;
$this->db->select('short_code,name');
$where = "FIND_IN_SET('".$type."', caregiver_type)";
$this->db->where($where);
$this->db->where('location','2');
$this->db->order_by('name');
$query = $this->db->get('disclosure_page_name')->result_array();
return $query;
// _die($this->db->last_query());
}
function verifyDisclosure($caregiver_id,$doc_short_code){
$data['verified_by_ionid']=$_SESSION['user_id'];
$data['verified_on']=date ('Y-m-d H:i:s', now());
$this->db->where('caregiver_id', $caregiver_id);
$this->db->where('document_details', $doc_short_code);
$result=$this->db->update('caregiver_document_signature', $data);
return $result;
}
function getNonMedicalDoc($caregiver_id){
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
$this->db->where('users_documents.userid', $caregiver_id);
$this->db->where('document_name.type', 'non_medical');
$this->db->where('users_documents.status', '1');
$query = $this->db->get('users_documents');
// _die($this->db->last_query());
return $query->result();
}
function getCertificateById($id){
$this->db->select('caregiver_certificate.*');
$this->db->where('caregiver_table_id', $id);
$this->db->where('status', 1);
$query = $this->db->get('caregiver_certificate')->result();
return $query;
}
function getVaccineDoc($caregiver_id){
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
$this->db->order_by('document_name.name');
$this->db->where('users_documents.userid', $caregiver_id);
$this->db->where('document_name.type', 'vaccine');
$this->db->where('users_documents.status', '1');
$query = $this->db->get('users_documents');
// _die($this->db->last_query());
return $query->result();
}
function getUsAuthDoc($caregiver_id){
$keyType="us_auth";
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
return $result;
}
function getSocialSecurityDoc($caregiver_id){
$keyType="soc_sec";
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
return $result;
}
function getMalPracticeDoc($caregiver_id){
$keyType="mal_prac";
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
return $result;
}
function getProfessionalReferenceDoc($caregiver_id){
$keyType="prof_ref";
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
return $result;
}
function getNursingLicenseDoc($caregiver_id){
$keyType="lic";
$result=$this->commonSqlToGetDocument($caregiver_id,$keyType);
return $result;
}
function commonSqlToGetDocument($cg_id,$type){
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
$this->db->where('users_documents.userid', $cg_id);
$this->db->where('document_name.type', $type);
$this->db->where('users_documents.status', '1');
$query = $this->db->get('users_documents');
return $query->result();
}
function getDocumentsByShortCode($cg_id,$short_code){
$this->db->select('users_documents.*,document_name.name,document_name.short_code,document_name.type');
$this->db->join('document_name', 'users_documents.documents_type = document_name.short_code');
$this->db->where('users_documents.userid', $cg_id);
$this->db->where('document_name.short_code', $short_code);
$this->db->where('users_documents.status', '1');
$query = $this->db->get('users_documents');
return $query->result();
}
function save_verification_statu($data){
$this->db->insert('acceptance_verification', $data);
return $this->db->insert_id();
}
function getVerificationStatusById($id){
$this->db->select('acceptance_verification.*');
$this->db->where('status', 1);
$this->db->where('caregiver_table_id', $id);
$query = $this->db->get('acceptance_verification');
// _die($this->db->last_query());
return $query->result();
}
function getVerificationTabStatus($id){
$this->db->select('verification_tab.*');
$this->db->where('status',1);
$query = $this->db->get('verification_tab')->result();
// _die($this->db->last_query());
foreach ($query as $key => $value) {
$tab_type = $value->tab_type;
$vdsc = $this->db->select('drug_screen,malpractice_insurence')->where('caregiver_table_id',$id)->get('caregiver_step2')->row();
// pre($vdsc->drug_screen);
if(!empty($vdsc->drug_screen))
{
$drug_screen=json_decode($vdsc->drug_screen);
$drugScreen=$drug_screen->change_behaviour;
}
// _die($this->db->last_query());
$this->db->select('acceptance_verification.status,acceptance_verification.verification_date');
$this->db->where('acceptance_verification.status', 1);
$this->db->where('acceptance_verification.tab_type', $tab_type);
$this->db->where('caregiver_table_id', $id);
$query1 = $this->db->get('acceptance_verification')->row();
// _die($this->db->last_query());
if($query1){
$query[$key]->verify_status = 'Verified';
$query[$key]->class_color = 'text-success';
$query[$key]->verification_date = date("d-m-Y",strtotime($query1->verification_date));
}elseif((empty($vdsc->drug_screen) || $drugScreen==0) && $tab_type=='VDSC')
{
$query[$key]->verify_status = 'NA';
$query[$key]->class_color = 'text-success';
$query[$key]->verification_date = 'NA';
}elseif(empty($vdsc->malpractice_insurence) && $tab_type=='VMINS'){
$query[$key]->verify_status = 'NA';
$query[$key]->class_color = 'text-success';
$query[$key]->verification_date = 'NA';
}
else{
$query[$key]->verify_status = 'Pending';
$query[$key]->class_color = 'text-danger';
$query[$key]->verification_date = 'Not set';
}
}
// $vdsc = $this->db->select('drug_screen')->where('caregiver_table_id',$id)->get('caregiver_step2')->row();
// if(empty($vdsc))
// {
// $query[$key]->verify_status = 'NA';
// $query[$key]->class_color = 'text-success';
// $query[$key]->verification_date = 'Not set';
// }
// _die($query);
return $query;
}
function getTuberculosis(){
$this->db->select('constant_table.*');
$this->db->where('constant_type', 'tuberculosis');
$query = $this->db->get('constant_table')->result();
return $query;
}
function saveHealthCondition($tbl, $data, $id)
{
// echo 'TABLE NAME : '.$tbl;echo $id; '<br>';
// echo '<pre>'; print_r($data);echo '<br>';die;
foreach ($data as $key => $value) {
$insert_data = array(
'caregiver_table_id' => $id,
'short_code' => $key,
'status' => $value
);
// _die($insert_data);
$this->db->select('*');
$this->db->from($tbl);
$this->db->where('caregiver_table_id', $id);
$this->db->where('short_code', $key);
$query = $this->db->get()->row();
// _die($this->db->last_query());
if($query) {
$this->db->where('caregiver_table_id', $id);
$this->db->where('short_code', $key);
$this->db->update($tbl, $insert_data);
}else{
$this->db->insert($tbl, $insert_data);
}
}
// return true;
// echo $this->db->last_query();echo '<br>';die;
}
function get_health_assessmentById($id){
$this->db->select('a1.*,a2.name');
$this->db->from('user_health_assessments a1');
$this->db->join('constant_table a2', 'a1.short_code=a2.short_code','left');
$this->db->where('a1.caregiver_table_id', $id);
$result = $this->db->get()->result();
foreach ($result as $condition){
$file=null;
$this->db->select('path,file_name,id');
$this->db->from('users_documents');
$this->db->where('documents_type', $condition->short_code.'_doc');
$this->db->where('user_type', 'Caregiver');
$this->db->where('userid', $id);
$this->db->where('status', 1);
$file = $this->db->get()->row();
// echo $this->db->last_query();echo '<br>';
// pre($file);
if($file){
$condition->file_name=$file->file_name;
$condition->path=$file->path;
}else{
$condition->file_name=null;
$condition->path=null;
}
}
// _die();
// pre();
return $result;
}
function updateHealthDocuments($data,$id,$phy_id){
// print_r( $data);exit;
$this->db->where('caregiver_table_id', $id);
$this->db->where('id', $phy_id);
$this->db->update('user_health_assessments', $data);
}
function get_tuberculosisById($id){
$this->db->select('*');
$this->db->from('user_tuberculosis_questionnaire');
$this->db->where('caregiver_table_id', $id);
$query = $this->db->get()->result();
return $query;
}
function savePhyAssessment($tbl, $data, $id)
{
// echo 'TABLE NAME : '.$tbl;echo $id; '<br>';
// echo '<pre>'; print_r($data);echo '<br>';die;
foreach ($data as $key => $value) {
// echo $value['status']; echo "<br>";
$insert_data = array(
'caregiver_table_id' => $id,
'short_code' => $key,
'status' => $value['status'],
'explaination' => $value['explain']
);
// _die($insert_data);
$this->db->select('*');
$this->db->from($tbl);
$this->db->where('caregiver_table_id', $id);
$this->db->where('short_code', $key);
$query = $this->db->get()->row();
// _die($this->db->last_query());
if($query) {
$this->db->where('caregiver_table_id', $id);
$this->db->where('short_code', $key);
$this->db->update($tbl, $insert_data);
}else{
$this->db->insert($tbl, $insert_data);
}
}
// return true;
// echo $this->db->last_query();echo '<br>';die;
}
function get_phy_dataById($id){
$short_code=[];
$status=[];
$explain_key=[];
$explain_value=[];
$this->db->select('*');
$this->db->from('user_physical_assessments');
$this->db->where('caregiver_table_id', $id);
$query = $this->db->get()->result();
foreach ($query as $key => $value) {
array_push($short_code, $value->short_code);
array_push($status, $value->status);
array_push($explain_key, $value->short_code.'_explain');
array_push($explain_value, $value->explaination);
}
// _die($short_code);
$array1=array_combine($short_code,$status);
$array2=array_combine($explain_key,$explain_value);
$finalArrData = array_merge($array1,$array2);
// _die((object)$finalArrData);
return (object)$finalArrData;
}
function getTuberStatus($id){
$this->db->select('count(*) as count');
$this->db->from('user_tuberculosis_questionnaire');
$this->db->where('caregiver_table_id', $id);
$this->db->where('status', 1);
$query = $this->db->get()->row();
return $query;
}
function getCTypeCitizenList($short_code,$citizen_status){
$condition_type = array((int)$citizen_status, 2);
$this->db->select('*');
$this->db->where('list_type', 'c');
$this->db->where_in('condition_type', $condition_type);
if($short_code == 'american_card'){
$this->db->where('short_code !=', 'american_card_c');
}
$this->db->order_by('name');
$query = $this->db->get('master_citizenship_doc');
// _die($this->db->last_query());
return $query->result();
}
function get_phy_attestation($id){
$this->db->select('*');
$this->db->from('user_physical_assessments');
$this->db->where('caregiver_table_id', $id);
$this->db->where('status', 1);
$query = $this->db->get()->result();
return $query;
}
function getExtraDisclosureDoc($cg_id)
{
$this->db->where('userid',$cg_id);
$this->db->where('documents_type',_ADDITIONAL_PDF_DISCLOSURE_);
$this->db->from('users_documents');
$query=$this->db->get();
return $query->result();
}
function saveFingerPrintStatus($data)
{
$this->db->where('caregiver_table_id',$data['caregiver_table_id']);
$this->db->from('caregiver_finger_print_status');
$query=$this->db->get();
$rows=$query->num_rows();
if($rows>0){
$this->db->where('caregiver_table_id',$data['caregiver_table_id']);
$this->db->update('caregiver_finger_print_status', $data);
return $query->row()->id;
}else{
$this->db->insert('caregiver_finger_print_status',$data);
return $this->db->insert_id();
}
}
function updateFingerPrintStatus($fId,$docId)
{
$data['users_documents_id']=$docId;
$this->db->where('id',$fId);
$this->db->update('caregiver_finger_print_status',$data);
// pre($this->db->last_query());
}
function getFingerPrintInfo($cg_id)
{
$this->db->select('a1.*,a2.path,a2.file_name,a2.documents_type');
$this->db->from('caregiver_finger_print_status a1');
$this->db->join('users_documents a2', 'a1.users_documents_id=a2.id','left');
$this->db->where('a1.caregiver_table_id', $cg_id);
$query=$this->db->get();
$result=$query->row();
return $result;
}
function update_verification_status($data,$verification_id)
{
$this->db->where('id', $verification_id);
$this->db->update('acceptance_verification', $data);
}
function getOtherReferences2($cg_id)
{
$this->db->select('a1.*,a2.path,a2.file_name');
$this->db->from('caregiver_other_references a1');
$this->db->join('users_documents a2', 'a1.users_documents_id=a2.id','left');
$this->db->where('a1.caregiver_table_id', $cg_id);
$query=$this->db->get();
$result=$query->result();
return $result;
}
function getOtherReferences3($id)
{
$this->db->select('a1.*,a2.path,a2.file_name');
$this->db->from('caregiver_other_references a1');
$this->db->join('users_documents a2', 'a1.users_documents_id=a2.id','left');
$this->db->where('a1.id', $id);
$query=$this->db->get();
$result=$query->row();
return $result;
}
function getNPIdoc($cg_id)
{
$this->db->where('userid',$cg_id);
$this->db->where('documents_type', _DOC_NPICODE_);
$this->db->where('status', 1);
$this->db->from('users_documents');
$query=$this->db->get();
$result=$query->row();
return $result;
}
function getNotesByShortCode($cg_id,$short_code)
{
$this->db->where('userId',$cg_id);
$this->db->where('short_code',$short_code);
$this->db->where('status',1);
$this->db->from('notes');
$query=$this->db->get();
$result=$query->row();
return $result;
}
function saveNotes($data)
{
$this->db->where('userId',$data['userId']);
$this->db->where('short_code',$data['short_code']);
$this->db->where('status',$data['status']);
$this->db->from('notes');
$query=$this->db->get();
$rows=$query->num_rows();
if($rows>0){
unset($data['created_on']);
unset($data['created_by']);
$this->db->where('userId',$data['userId']);
$this->db->where('short_code',$data['short_code']);
$this->db->update('notes',$data);
}else{
$this->db->insert('notes',$data);
}
}
function get_concent_signature($caregiver_id){
$this->db->select('concent_signature')->from('caregiver_step2');
$this->db->where('caregiver_step2.caregiver_table_id', $caregiver_id);
$return = $this->db->get()->row();
}
function get_caregiver_basic_details_by_email($email){
$this->db->select('caregiver.id as id,fname,mid_name,lname,email,qualification_type')->from('caregiver');
$this->db->where('caregiver.email', $email);
return $this->db->get()->row();
}
function get_tab_status($id){
$caregiverData=$this->getNurseById($id);
$from_tab_status_pctg=json_decode($caregiverData->from_tab_status_pctg);
//pre($caregiverData);
//pre($from_tab_status_pctg);
// 0 = Locked
// 1 = opend
// 2 = completed
if($from_tab_status_pctg->form1!=0){
$tabstatus['basic']=2;
}else{
$tabstatus['basic']=1;
}
if($from_tab_status_pctg->form2!=0 && $tabstatus['basic']==2){
$tabstatus['exp']=2;
}else if($tabstatus['basic']==2){
$tabstatus['exp']=1;
}else{
$tabstatus['exp']=0;
}
if($from_tab_status_pctg->form4!=0 && $tabstatus['exp']==2){
$tabstatus['emp']=2;
}else if($tabstatus['exp']==2){
$tabstatus['emp']=1;
}else{
$tabstatus['emp']=0;
}
if($from_tab_status_pctg->form5!=0 && $tabstatus['emp']==2){
$tabstatus['phy']=2;
}else if($tabstatus['emp']==2){
$tabstatus['phy']=1;
}else{
$tabstatus['phy']=0;
}
if($caregiverData->qualification_type==4){
$doc_per=24;
}else if($caregiverData->qualification_type==5){
$doc_per=14;
}else if($caregiverData->qualification_type==6 || $caregiverData->qualification_type==7){
$doc_per=17;
}
//pre($doc_per);
if($from_tab_status_pctg->form11>=$doc_per && $tabstatus['phy']=2){
$tabstatus['doc']=2;
}else if($tabstatus['phy']==2){
$tabstatus['doc']=1;
}else{
$tabstatus['doc']=0;
}
if($from_tab_status_pctg->submited_for_verification=='yes' && $tabstatus['doc']==2){
$tabstatus['dis']=2;
}else if($tabstatus['doc']==2){
$tabstatus['dis']=1;
}else{
$tabstatus['dis']=0;
}
return $tabstatus;
}
function applicationPercentageCalculator($caregiver_id){
$caregiverData=$this->getNurseById($caregiver_id);
$from_tab_status_pctg=json_decode($caregiverData->from_tab_status_pctg);
// $uploaded_doc=$this->CargiverDocumentsUploaded($caregiverData->ion_user_id);
$this->db->select('documents_type');
$this->db->where('userid', $caregiver_id);
$this->db->where('user_type', 'Caregiver');
$this->db->where('status', 1);
$result = $this->db->get('users_documents')->result();
// pre('Doc Percentage Calculator');//die;
foreach ($result as $value) {
$uploaded_doc[]=$value->documents_type;
}
$percentage=0;
if($caregiverData->qualification_type==4 || $caregiverData->qualification_type==5){
$basic_documents=array('PHO','CTZ1','SSC','RSM','REF','DPR','MIC');
$medical_documents=array('EHA','PPD','RRM','CPX','TDAP','FLV','CVD');//'DSC', 'TNS','DIP','RBL','RBO','MUM',not added now
$caregiverData->qualification_type==4?$licence_documents=array('LIC','CPR') : $licence_documents=array('LIC');
$uploaded_basic_doc=array_intersect($basic_documents,$uploaded_doc);
$uploaded_medical_documents=array_intersect($medical_documents,$uploaded_doc);
$uploaded_licence_documents=array_intersect($licence_documents,$uploaded_doc);
if(count($basic_documents)==count($uploaded_basic_doc)){ $basic_per=8; }else{
$basic_per=0;
//echo 'uploaded basic'; pre(count($uploaded_basic_doc));
// echo 'required basic'; pre(count($basic_documents));
// pre(array_diff($uploaded_basic_doc,$basic_documents));
// echo json_encode($uploaded_basic_doc);
// echo json_encode($basic_documents);
}
if(count($medical_documents)==count($uploaded_medical_documents)){ $medical_per=8; }else{
$medical_per=0;
// echo 'uploaded medical'; pre(count($uploaded_medical_documents));
// echo 'required medical'; pre(count($medical_documents));
// pre(array_diff($uploaded_medical_documents,$medical_documents));
// echo json_encode($uploaded_medical_documents);
// echo json_encode($medical_documents);
}
if(count($licence_documents)==count($uploaded_licence_documents)){ $lic_per=8; }else{
$lic_per=0;
// echo 'uploaded lic'; pre(count($uploaded_licence_documents));
// echo 'required lic'; pre(count($licence_documents));
// pre(array_diff($uploaded_licence_documents,$licence_documents));
}
$percentage=$basic_per+$medical_per+$lic_per;
if(($percentage==24) && ($from_tab_status_pctg->form11<24)){
$from_tab_status_pctg->form11=24;
$updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
$this->db->where('id', $caregiver_id);
$this->db->update('caregiver', $updatedata);
// echo $this->db->last_query();
}
}
if($caregiverData->qualification_type==6 || $caregiverData->qualification_type==7){
$basic_documents=array('PHO','CTZ1','SSC','RSM','REF','DPR','102','103','RRF','PCA');
$medical_documents=array('EHA','PPD','RRM','CPX','TDAP','FLV','CVD');//'DSC', 'TNS','DIP','RBL','RBO','MUM',not added now
$licence_documents=array('LIC');
$uploaded_basic_doc=array_intersect($basic_documents,$uploaded_doc);
$uploaded_medical_documents=array_intersect($medical_documents,$uploaded_doc);
$uploaded_licence_documents=array_intersect($licence_documents,$uploaded_doc);
if(count($basic_documents)==count($uploaded_basic_doc)){ $basic_per=9; }else{
$basic_per=0;
}
if(count($medical_documents)==count($uploaded_medical_documents)){ $medical_per=8; }else{
$medical_per=0;
}
if(count($licence_documents)==count($uploaded_licence_documents)){ $lic_per=8; }else{
$lic_per=0;
}
$percentage=$basic_per+$medical_per+$lic_per;
if(($percentage==25) && ($from_tab_status_pctg->form11<25)){
$from_tab_status_pctg->form11=25;
$updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
$this->db->where('id', $caregiver_id);
$this->db->update('caregiver', $updatedata);
// echo $this->db->last_query();
}
}
if($caregiverData->qualification_type==8){
$basic_documents=array('PHO','CTZ1','SSC','RSM','REF','DPR');
$medical_documents=array('EHA','PPD','RRM','CPX','TDAP','FLV','CVD');//'DSC', 'TNS','DIP','RBL','RBO','MUM',not added now
$licence_documents=array('LIC');
$uploaded_basic_doc=array_intersect($basic_documents,$uploaded_doc);
$uploaded_medical_documents=array_intersect($medical_documents,$uploaded_doc);
$uploaded_licence_documents=array_intersect($licence_documents,$uploaded_doc);
if(count($basic_documents)==count($uploaded_basic_doc)){ $basic_per=8; }else{
$basic_per=0;
}
if(count($medical_documents)==count($uploaded_medical_documents)){ $medical_per=8; }else{
$medical_per=0;
}
if(count($licence_documents)==count($uploaded_licence_documents)){ $lic_per=8; }else{
$lic_per=0;
}
$percentage=$basic_per+$medical_per+$lic_per;
if(($percentage==24) && ($from_tab_status_pctg->form11<24)){
$from_tab_status_pctg->form11=24;
$updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
$this->db->where('id', $caregiver_id);
$this->db->update('caregiver', $updatedata);
// echo $this->db->last_query();
}
}
// echo 'BASIC:'.$basic_per;
// echo 'Medical:'.$medical_per;
// echo 'License:'.$lic_per;
// pre($percentage);
// pre($from_tab_status_pctg);
// die;
// if(($percentage==24) && ($from_tab_status_pctg->form11<24)){
// $from_tab_status_pctg->form11=24;
// $updatedata['from_tab_status_pctg']=json_encode($from_tab_status_pctg);
// $this->db->where('id', $caregiver_id);
// $this->db->update('caregiver', $updatedata);
// // echo $this->db->last_query();
// }
}
function getCaregiverDisclosureInitialPdf($ion_id){
$cg_data=$this->getNurseByIonId($ion_id);
$cg_id=$cg_data->caregiver_table_id;
#creating specific folder
$folder_name='USER_'.str_pad($ion_id, 6, "0", STR_PAD_LEFT);
if (!is_dir('uploads/Documents/'.$folder_name)) {
mkdir('./uploads/Documents/' . $folder_name, 0777, TRUE);
}
$pdfdata=$this->getRequireDataForPdfFillUp($cg_id);
$res=$this->Application_of_employment($ion_id,$cg_id,$pdfdata);
$res2=$this->updateEditablePdfs($cg_id,$extract="");
}
public function getRequireDataForPdfFillUp($id)
{
if($id != '')
{
$datas = $this->getNurseById($id);
$data['cg'] = $datas;
$data['eha'] = json_decode($datas->emp_health_assesment);
$data['school'] = json_decode($datas->educationBackground);
$data['emp'] = json_decode($datas->employementHistory);
$caregiver_type=$data['cg']->qualification_type;
$caregiverId=$id;
$YearExperience=$data['cg']->years_of_exp;
$data['expTab'] = $this->getExperienceDetailsForPdf($caregiver_type,$caregiverId,$YearExperience);
$data['emg_contact'] = json_decode($datas->Emergency_Contact_Address);
$emg_relation_id = $datas->Emergency_Contact_Relationship;
$data['referral_source_name'] = $this->getReferralSourceName($data['cg']->referral_source);
$data['emg_relation_name'] = $this->getRelationshipName($emg_relation_id);
$data['employementHistory2'] = json_decode($datas->employementHistory2);
$data['demographics_exp'] = $this->getDemographicExp(json_decode($datas->demographics_exp));
$data['website_setting'] = $this->get_website_setting();
// _die($data['expTab']);
}
$data['tick'] = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAaQAAAGkBcaGY2AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABzSURBVDiNzdCxDYJgEAbQxwK6g2ED7QyTWFKxhQPQso4tIzAAG0AN2GhiYfLjmaDXv+++O3492Rf2hGMUFxjRRfAZA3rk/4EbXBL4efPbzTdMKCMYdmgxo1pbe03Ixw/bP0Im1KnaqSZLBL82ueIQwdvPHdIVIU3fgaM4AAAAAElFTkSuQmCC';
$data['blackSqr'] = 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3RDkyMjJENTRBNjExMUVCOTQyQ0ExNkI5Q0I2QzhBRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3RDkyMjJENjRBNjExMUVCOTQyQ0ExNkI5Q0I2QzhBRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdEOTIyMkQzNEE2MTExRUI5NDJDQTE2QjlDQjZDOEFEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdEOTIyMkQ0NEE2MTExRUI5NDJDQTE2QjlDQjZDOEFEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAA0AwERAAIRAQMRAf/EAHcAAQEBAQEAAAAAAAAAAAAAAAAGBwEFAQEAAAAAAAAAAAAAAAAAAAAAEAABAAIJEwALAAAAAAAAAAAABAcBEcECAxQVBhYhMUHREhOTw3SkBVZmhhc3GChIgZEiMkODZEU2RicRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AMvWktFYWj1h6fQ0LT6Wjo0Alv3kFBQb+5YevajLQEtxhWfrMn4Zm0A4wrP1mT8MzaAcYVn6zJ+FZtAOMKz9Zk/DM2gOcYFns/syfZ+KzZYaA2Snc8umCXZbSZYpBF4/fWb5e2vdbarWQMbXFzPnJlsI4BHAAAAABuHiHvPiQIFcXNCcmWwjgEaAAAAAG4eIe8+JAgFxcz5yZbCOARwAAAAAbh4ibz4kCAXFzPnJlsI4BHAAAAABuHiJvPiQIFcXM+cmWwjgEaAAAAOgbg0z0itNVaT1vkge0sLpkptpmXKTStGX0di0WvN8s3F17TQE72k7WZqA7SdrM1AdpO1magO0nazNQOvekmr+V1rMVcA03+FcAPvlCJa+nj0cuPVctekD/9k=';
$data['blackkDotWithQr'] = 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Q0JDMDhGNjRBNjExMUVCQUI4QkVBNzhFQkNCRjFBMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Q0JDMDhGNzRBNjExMUVCQUI4QkVBNzhFQkNCRjFBMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDQkMwOEY0NEE2MTExRUJBQjhCRUE3OEVCQ0JGMUExIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDQkMwOEY1NEE2MTExRUJBQjhCRUE3OEVCQ0JGMUExIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJ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';
$data['logo'] = 'data:image/png;base64,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UmVhZHlxyWU8AAADJmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkZEMjhGMUE0NTA4MTFFQkI0MTZCNDY3NzE1MkRERUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkZEMjhGMUI0NTA4MTFFQkI0MTZCNDY3NzE1MkRERUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRkQyOEYxODQ1MDgxMUVCQjQxNkI0Njc3MTUyRERFQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRkQyOEYxOTQ1MDgxMUVCQjQxNkI0Njc3MTUyRERFQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvV9Q/kAADUcSURBVHja7N1nrG1VucbxxXGLiIIKykFRUOy9Y+9d7CK2WGLUaGJiNNFPxnj9on7SxC+KxoK9Yq9YsPfeKxZEUAFRAfGKd//mvf+dcVf2AeI5y7322XsmK3uvueYcc8zxPuN5y3jHGPucdNJJh5599tkH7rfffuf5/OMf/9j3gAMOOHu2fWzZ41KXutT555577n5nnXXW5VdWVv579Vg588wzDzriiCNOXjnuuOOeeuKJJ/7XX/7yl9mOHTtmF1xwweycc87ZbrXtYzr23Xff2YEHHjjbf//9Z0cfffSzVk4//fSdp5122toFV7nKVSbQbB9b9/jnP/85u/SlL41pZn/84x+nj+OUU045bOXggw/+46oqmh166KGzY445ZvaEJzxhdtBBB2232hY+/vWvf01///SnP81e+9rXzt761rfOzjjjjNllLnOZcybddN55581WmWZ2iUtcYnajG91ou8W2j+m44hWvOIHn97///fR91VTZH8OcwXbxWTVuph9WDd/t1trCx9///vfZZS972dklL3nJ2arRu2bLHHLIIaetnHrqqYeyWbAM1UR/YZq9+dhnn32mT4f3j4ad1wYayv/O+73r/a9z7c0HsHREHv6u2ro7V1Yb4oJdNeTeDJhdgajfAgvW9T+Q9HerOAXz7eGzstoAF8w32FYAzYUBKQbBNDHu2CZ7O8PsikBgZcd4YiuCBYuMn/nzscpWPeYY5oI1lTQ21lZ0I0cbJpsloGwDZmCY9RptqzXIaNCmhgLKVrJZLqpTTTbMfLBmKx55hQFlNHIDkfbJxdxqQBn/bnmGmWeaetLIOlzK7djU/x4ro2egpy1DHObixDoS7O6UMR6pn8r9wx/+MJ2/whWuMAWwxKgWTffLyC4Fcx1GrZeSYy9K0Ho7Ia4HkP7uqgxRTINq43H++edP6sa9/v7sZz+bRux7xpWudKU90gmyhTyDIFJxm8kz3RRKuR7oLwYkSALNm/ExuhrY/vrXvxooWxPEWWedNd3jHHB861vfmp177rkTcJSX8NyrnD//+c/TszDtb3/729nlL3/5tZFbv7sOaIHvcpe73Gznzp2zgw8+eEoBcBiXEy3te2pNeYHEd+eF3LtmM8R5lhowBOkzqksCJ3wN7Jz/R5vDEAdBJnz3E6APYf3tb3+bhOxe17ofIHx3n+sBoL/AQz2513UErB7K8Qxl/OpXv5qABQS+3/KWt1yrfyBfj0kCqvNdu+yG9VLXLhqfb+h6Zr2T8DQ2gLA1nP/lL385+/Wvfz39D2QEqdf7n4rxF/Nggatf/eoT+yjHh0rCJq679rWvPd179tlnz652tatNZfzmN7+ZnnXDG95wEjDAKA+43P+DH/xgOq8uko+U4686+t2zUktANrruy66elhowev0YREstYYVA0MCp7/I3qKpTTz11JoOQajryyCNn17zmNSdBK+P73//+7Kc//ekEFNf7S50EPuV/73vfmxiDcI8++uhJsN/97ncn0BD+N7/5zel5hv/9BmA3v/nNZze+8Y0nJvO78qg97KQsbHXlK195dsABB6zZR+ozzz7bgNkD9svINECU/s+bIwCC8cEM17jGNSbWcB2g5OmwXV7+8pfPHvWoR82uetWrTmBRJiYYQwrY4LrXve7sF7/4xewnP/nJBDhAoJIkl7keGIDl5JNPnv3oRz+a3fSmN50AduKJJ87ud7/7TWDAYMr43e9+N7GPegKZZwKpOuWFYJzNENZYasCMUdfAEoA0sF5O9VABzl//+tef3eEOd5iE4/jCF74wqYtb3OIWkxAJlVrBCJiHLaPcbKKMa6AAuC996Uuzz3zmM7NrXeta032eDyyeDYjKADrfDz/88Akg73znO6dypLq6xzPdd+aZZ85++MMfzj796U/P7nWve02gjNXGd1v2Y6kHSTSohvTJowEG9oPf3vSmN80+8pGPTHbG7W9/+0loVBGVRIU8+MEPnh177LETSwAMlqA2gOPLX/7y7L3vfe90HZWWVwREAHSd61xn9rjHPW6653Wve930F2NhE4JXH2wFAK4tsCeV8QY3uMHERm9/+9tnxx9//FRn5VJbT37yk6cyjjvuuNknPvGJCXCe675tlbSHPKXiJrmzhKDXUxuYgG3Aw9HwVAQQYBv2AnAcddRRs89//vOTEazXUxOAgwVyiXsW4VI32EK6qu+f/OQnJ9BRYyWaeT6GKdCZxwZ47s81ByYq8Rvf+MZkLB9xxBGzO93pTpPBDNgf+MAHpvqrD7BgItdvA+bfOICD0B0MTmCggvRWlK4XS14ntIxaDX7KKadMgCE4gLne9a43lQMoBOUaDIWZ9PCuI2BAobJ8J1hgk9OqfL///Oc/n+oDaIcccsgkdM/37Dw0Ri6DG9sBWF7cYYcdNrGMZ6o3pgREdhf1p0x1vSg1vZGR+A0FzJhSMB+N7bxrGI0EVZRWT3fwZoBI42dEuofQ9HA2DlApw+8E5Dv1wlNiHGMZxiiBK5vQb3WrW02gBFjAvPvd7z4Jn9pQB+BlG/kdOD3X9UWYnfM8ZTHEAdSzArpD/XhpzmEUIKPqssXGtgDeApMbbeesbCRYRkMzcPSdEDQq4erxhKMhNa6GBZqMVa6uXkeoVM53vvOd6RoMQiAYAsOwcRiobBuM4X8gUTZGKI7iHiyAzagp1/rdbxjCOdcEbNfmJlNBbBjX5J5jEOpTOXlX3hNgqCmGMRWHAXPZqVrPcB2WUraOsCUBM7rK48BbgCFEjaanFlzLq2CfaNTb3OY2E1AIhaAxhfs08k1ucpPZZz/72elagsYg7ARM5P/b3e52k6AAye8F0DyziDIwRP/V0fOxhue6L8YrUuy3e9/73rO73OUuUx0JmRtN1fgNqJQBQM47ABuQAB0LCep9+9vfnuoEfKm56lQcaksBZl4FzY/WEp7eTagam1CoAd/pfME3gOD+siFQPmGnqu54xzuujbSa1cnWYD9gCD2cinNPxmq2kOcQnu/z9cReAViZ6hO4HOqhrp6jIwDoXe9614nlfNQFU7g+sHgfdQrsvnum36ky5WDFjHLvuGWN3gvLH9bz2SaEgpr1SL1Oj7vHPe4xsQR3No8jt1RPzAjGIoSsHKzDlf36178+NT6PBGNRUwSmF49JVIQ734tjAZ8GMdUf+HwwBSABG2ABDhAU8S2ImDqastdWVSLQA4x3FDdyzUMe8pDZV7/61anO6oXRGj7Y6Oy/DQNMoX6H3k54Glfjf/zjH58MTz0TUAgPUAiADXO3u91t9opXvGJ2z3vec/IqgAI4KodwMkwxFeEJ6KU+XFvEODuoSHJjPI1ZEXbjTFQjoCjbdbETQPKmXOt5H/zgByeGYcuIEjdPGVC8Y4OOX/ziF6e/3vdmN7vZFDNynw6BJQEIk7qGml2GXKUN9ZI0HL2sl2mMH//4xxMLMG4BisH7la98ZRLQM5/5zEnHEwoh8Fxe//rXT4IELmURLIF97nOfm5jEqDFbJw+DkalMQilZKjtqTEUcR4/HNAjf3Qc42RIZzQ0iYrinPe1pk3rxPgxwTEjgwOV56iyCjNmMVXkfTArI3hXD+k2HoOa8j/NAtNGu9YYCJiPTgQ0YsMUrAIcwqBahf1FR4NK4BHX/+99/6n3cY0zkcN73GlY5KJ6AHATWQGY2zlqu6pBxp0fHLBiBkNVlbTLX6u8AUpzF757jemDyXZ2wHXsLA1KZ1JnOQfhAQBUBNXADwQknnDB5hK4FMsaz33hY1B1GwmRbNg5TzgoDj+rRqwibYAvYaVCMYIyGnn/Sk5601sAPe9jDJoFSRdhDQ2rQlixRfmrJb8VdYoTGcPqU5+LwLJFctk49mjdWqoO/DF2MxcYwXgUw5eMAmGepK7ZRhz7eCUO6D/gY0oDFZnHfU57ylKkN1MV7UKeMfW2kvaivvQ4w6yWVzw8cenkNLGzuL9rWUwmGMVtATYje9XrYq1/96tnjH//4CVyMYI2MwjEPARMCgZZ/UpQYS3mO3hpLFEjDCspzneED/2MqQMUiQKEuhOoaYHNvdg5mS+0pG9jV13UAIMaiXoxh4BaE9B2ggEz9vZtzmJNnpB1cLwKsM2gDwOWuAxMVlkdZElYG+3wK6qYBzBhnGb97sZKqNR6G4blwiz/1qU9NgAEeBi5B+AiYOY+2CVHDuFdjAorrXVd0tsZkU+jxbAkDlQYcCYbAqSy/+0sFUEPUB9XB/ihlgpAI1ZiSOrgfS7CdADXBO4ohzSeNFwzEJuwX5fkfo3KjtY2y2Cy56sAFwBnW6qU+0jR0JMAqc3DMF9r0KmmcihpoCqujdUDR8x16MxA4rxH8Ru83JEAl+c4Y1uBiHQBTvomGBagA41pMxLNiG3zsYx+bVIQeTD343fgScPqU8lBgj9eGndSr0H2Gb8ZqIAkwpS3MH4SrjlgEgNXHX/aO968NAIYq/fCHPzwBhOoVKARiRvz73ve+qX6YrGiwDtTo/qYEzBhnmUd99gDa96LYRY/Uo9A3itWwGlPvxgIYAC0LwmksZdz3vvedBF76QDm/wFBv8724DGDxwJ73vOdNAgDKhhQ8FwiAga1w0kknTazG2GSAK4fw9HYCZrNw6V0fo1xU8rZ6YCPXu9d7SLMovwZTMHpjOu0DzJiFDUM9AaR3Vn/1KT0iY31TMkyUqof3IgHIC2sQQvHSt771rae/epS4BarHMNQKILkWBWtQBmSDdI95zGMmRiBs5StDD2sAEpMBYyPJBc4e+tCHTkB5//vfP/va1742PcczCI6wCFPQjGDf/e53T2D1u3PAqn53vvOdp3oDNaCMz9sVu9RRSmJ3YCjtg8HYS37HepiHvYQV2XLaSm4NVYhlGMzsMWNP6gTEBRLnp9Hs6fyahQAmxJeC2AI9fS+Si4I1sJ7jnPuABjAIFQioHB/GrR4JTI9+9KMnsHhGbBKTEWJTRjrn/wJ0ypQY5Z6GCdRFvYCn9WDch/Fy/6lDLNfsggzncmCcvyiGafZDoC5NAkP6eL7Yi2u0CxtNHg+mxSYPeMADpvfVnsADMH7TscpzXvQ400JtmIDTRDFH+bcaCmCAgGAe9KAHTUYcJmBz8EaKmbgeA9DZwIOSMYuyAEfjFrVlfI4zDWKYPJmEIQNPvRigDEtutHvcTxXp5Z5JFbCVqCGj3J4HMOqSO+7ZRYcvCjTqVrKXA0P4H4vqJL67BuvIKKSOqEttQ41RkYxvDJd608ZUk/ZQ9oWx3NICpiTtYh2dI5gSmQjTywuBEwAguD6hAJJgHvYhbAYfFZFwxsG/sWcVes8I1KiYpcN5Ho7n6amCgoza8k/Qvt6uN6snyr/tbW87he7V3Sh4qQbjZP2L07urj/f0l/rAqDoJkDDmDYOwZ3QqqaeeyXukhqgsLOQe9aOu2FjABFyLHqBcKGDq6TVkMQ0vqyfr2XquRmNP+I17LPimAYBLjyJsguP+uka5gNPgYYf/AaU0APaFsoFNGTGd/0vifuADHzj1YKoJUHwYvOoFsJjIYKAerRe/7W1vmxgnV3aczXhxJqG5xsf9qWvgJGzvpYNQ0QBpdoNnsp/YXkDFs8QsmMj7aAeqS6eqjIUGWxcFlnGpjMZmmjck4qohqJpcZSoJtb/nPe+ZvfKVr1wb7CudUgM1HsQYJeCYpedk8AHDOJPRAaAYpYBeU12BkJvr+Q0xeC6WUz89uuw9BwCrk3Jj0TFwxi7KdlJXHcHIOqHGhqlKdcroVh62Ywg32U19AAGLYFeqUrIVDy0v03XiOKVO+LvpGCZvIftFo+qV7AL/Mx4JTM/ODRTAIjy6HOXrSYSvQTUctcDAe/Ob3zxRN3bR8xtC0IDsIUDiYje3ebQZYgD3OJc7TEBonT2jh2MT4zgY0LMkahMEVVDWXJP3U3+pJR1CvRs4NRINZARuoBFLzDPvyI5Aw8AHNsDExhilYKR3AxRApqJ0PuDWtjzIPbFwwH8cMNFiRq9GzUjVmMCgIQGBm5qN42UJReO4lhAwkF7UHCXAoFLYPeiYLQIYgCLQJW7DmOaOsjuaOdDAYmM9hBXYNDTh+su9tRo6wBjcBBZ2lnqL4YzJXsoC/Fxr1/QsdQQ2gULAU3fvqm7jfOoCme718S46DzBgFp2K56hMnUnbGUZo2MJ7YCVhCSocoBum2DQqqbA4Viny6YX0GIYcD6gwvt9rWPfpQQSTQdhAYsEtLKLXMVTFKghC+VTZhz70oQkwwMQOCRB66zjuU0plwK7h9X4BPkyQ7UMwGMLosp7dOBghl5bRSDYgusd7O+89qQs2mWf6nn2FUdzTihCeD2QZ/VSwevkAkCXcARf78t50EAYxsHh/5Te3qYHVRcxxWuhEttQSoJRdprGxBxdVzxHmJgw0rDdrII0IFKUn6nXl2DLsMoIxlEYBCMxDpd3nPveZnum73li4fj5pS3mEpj4YTMOXvATcwOuc3zyPDQIweTXeyflAlwGMdUq4wiDKKMrcrAT3ELhrCTpXvLwb5TRSDqxlFGqHUjawsbK44iXJey5QLtKtXghg0uVRdSF4KkRjaWyewDve8Y6JCfRCDUEoeqe/GiVDt5A9wAGEQJXppiKeeiPbhu3hHuUQJPVCwPX6VEgCjvkIFWhK2MJSgmUEjqHyYJSB3VwPrOrUvO3iH+Pq4bwtzNk0EXXxaVDR+7NDyq3xaaUJNlKLBGS4GxaRYO79eJCMXx3G/TpH3peOt+lsmADjpfOOYhg9wHd6GIh4J8aECJmgWjWBoBobIUz/E47cEIBSjobXuNQRNcT+0dtiGAJmwOp5rmsKibo1CZ+AYhkC8hyCphaV7zyG8DyAyoZii5TM5Hs2ElBgSKqxzT4AC4u6n20FiOwRHYUaHBO5SuN0NGeKGvIsDGjartAD0Piuvrw5dfdc77zI5e0Xmt5QWD0js5xaoXkMAVC+o2fUq4E0Di/K/+7BChq+xYVQtoZipLJh8jYIRs/3fz0WQDyb0AvJ93uGKXvgox/96ET5Gh4gGJwNWRg2ACzPbuWqhjgIyzNjQoBgKGMXYMOEOgSAUI+MWMY+txiw3TuOAWmPpuL2VydjrwEaMOpowgCpWe2kDfPUdAgsPb+FUfJYL8F9wwGjAdrggCC8jEbrfKsbEKhG1MgEyqvxwgBTvKTYReNAGl7jNUXVNQbp9FT3NAtRg1Mj2EzjNTDpHmU0IsyzohaBis2kDoRC+OwpdfQO6s9gV6byfQcKANO7XcMee8tb3jJ74hOfuGY/Cbq5lvC9O5C3mkPGc7MJHLFwAvadp5jBbGhE22lLdcsucj/AeYfSIEaWyXbb3bGmhTFMXpCGay5xg3QZdl7Iy8v3SL206M44NjMuT6aR/HU9gRbt1MsJAy0LcDUS3KCm34HG97yT0if0XM/BdDEhQAKCerALMla9CxVFeKkA92MqDMTeYWf5Tr1iLUB3njCpVR7hGNzzbIBTL6AvGSuG9jwdC5hFprOtmr6Sc+EvgAkWYrc6Z0HUPaGmFjr46GU0GENN4zfpvUUCW2CQgAiKCsAuGaO9YBHcBg8JAjjYGamrPBMN63nNT6bqiqRiBh4QECuDLQQI4iMxkMPYjXqzUwhZGYTUKDiQAKBz7hH0k37gELVuRiUgq5f7G+AEOAZ62XRUa3OrMRhDXp16Z4DxPmZIGB5IrXjvRq4bBAWMPMpUVmBhC2k/fws3LJVKKrTvhaDed0LJgG09FVSrwfQY59xTpn6UXVRVWTwDdk7LcGhERipQECT9TcX5H0DQOSYCggxHPZw6ck4DEgAQNWk/+0HdPMe1eV/qmaHcNFz1E3EltLIImz7j+lxuLOIewUbspmx18hyDi9rN/7GcZ3gH3hS1S002kyHPbpyT3nADNnOtOsfSDVvs7nrDCzV6MxBz+UZqTKe2qZfG02PGRYQKrhUJbkRY7+dh6KGSwvVocQnPAxA9OwDq1Xou5gIG6gXAAAtQCRUDlAiu51OTRow1uuvFRDzPdequPElcWManxRGzT7BGcZwCgwCibGzW7AXvCiDK0xFafAADAEzvrd5Ul+erx7ik7DhNZhyhbzaD9msQtgDj0gKGUFS2ieilA4xGGJDopYQ+rnU7TgHp2uyeJqmZYchukFcr6qnxlcULcWAGQtJL9W5CNnDpr+eUKwxoGroJbpjnkY985MREejKBYkjMozzPwBRUCzCwMfRmQHSeLdRaeEL77uEVaQ/lAXPTabP1HOpRMLBZB407tTKodx87UMxbW7lOR9BRABC4GnrYE5HfhcVh8pBUuHXhco0zxHrRsvD0Mg04bmo1xicCm0bRAE3Uxyhcy9bJJQyCVKaGJ7DmUDMICaYQvp4urpF9BTTUWd7UuFpDKaF+8zzlu9YzCbJ3SCUAkGsbF9M52FDAxBMzQxILGfRUfoOs2VPNy9aG3hWDje7y/BrAsYxr1atk9TGhbFyBfKlsGJVFoyg0Y3J+38QA4G+9oaUt1lsGpHJ5AO9617smgWITjUAN6PHYgcCc82zqxHWNswCInkqtEbDylEFNNCbjk4HtfmoOaJSHnTwHIPTilufIyPVxXbMYqhPBKZObXToooxrIAQEDeR5A+AScPKZyfxrsTA2N+yP0aQ54hu8IqjH7calUUiHr8mBHMM3vdFZ+ShPcUz/ZPONqB4X1m4rSpDK2RGkFDUtodADhDVFb1JfrRIubJOfeZjK6HwO4FgBaTRPrAEEBOoIHhIx6AGy2pvQLNo24kOcAh2CdToOFANX/VKj3aTk0bAR48pWxTp5drNEQA9CMecxjNHzMtXH/mOnY7IaltWFapr3xpJElRkMt/T2mW46bS6SKOldEU8i/NfCca1qqa9gu9Uyg8l3KAu+KYNgnWIhQmyBfbq6yqbBsKszj2tZv8Vtemucqn+v9rGc9a3qe8pUn8qyOwArEQKWO7teJAFV5bDEGdtc1ma2svKLd2hFgW64+43ZMVBtTS0aGLhoOMLs7MLkwwASGWGEc1R3nzoT6ADPaLKNRN442t/6/BG0NTzjtK2CMpWkqhCS+QUh6bvnDQu1UjYhoc4w0pLoS8ste9rI1159w88gMTLJ79N7oHRgZttQk+8j5UjSMxvsOcJjL4bnlKmMNz6Pynv70p695M7VXgU7CzqClBse9pGOUsa2UMc6cGP/u7kS3hSVQlXU3BuCabuL35j8XvCstgCrQ4OOmFIW0E5KGfcMb3jCdE6nVSxmk8kZaWtWzDWZaS1e5Glq4nJvcXG3CBzrPJnA2hWdSQ0BBoJjG5HfCxyQYpblEpt62j0CLDAFX9/GWXJ9aBpQA4ZoxqkvtNbdKHTJ2Y+tWrsBCnjEmSeU4KJuqrY2yHWPlHIr1hgw2FDAt4OeF/V8uSxY63T/2pAYVi8usN3tvVGftLUCXszOUqTE8r4HLVt4m/IDb8qcNKHJrmwjWCDdWIRQqwjkeVEY5w5mXBJSGA1IHzvlLhTF6PaelQNQxtz6j1f3en7prcHVk1TrIuMaedlRWeTRjNLeMRu/vXPbOIjbuWghgoJyQUjUZrP2frdDLjnS63gvObw/cZDMgISAAJPiWHtPY5cS6xj28kAJ0ZbiVc5IdQ6iA0QpVGp4Kc85zSidoZLtlXP1vhLsVPbEWhvE+RbFjUue1D1C2ZU4hhrHna78mzAUcwCv6m83VPdly84skjWNJe2J5+oUApuhuSUqjPh3ZpMBUQpx3o+eB0jiURi8hKsESSgOCBCyyyisqZUEQjntLgIXKS+8sLwYQqILiNATTaDp1JKTf2jTN2fad8Ln58oALC5QC4fkYRT3ZKr6XN4MBqUUgGxcrGg3YkSnKyCu90/dUd2wzjtfN51bPd76lAkx6urGaIpENAhJ2o61lr7UH0jgdYwRMgSrGqh7VKtsE0rgOQ7cBRoL0PExD6K5lB9TbWntOOXq7clwLWABh1JuRqmxgEmwL+AFRfd0vDsSGUgc2FOMbONlMrqUmgSHWcx0momKozXG4ZPQiR1VcVp+6t5Sasso5GsMW8yyzJ8CyUKM3o3FkhxKZNKAG0+AZx65tBHtXixFVtl7J0CXY8lKU2TIdDGqsURYdMABPA6KBFCu1SFDzjzwHcNhG7m3Ywv3OM2KbFdl8Jc/K2FQXRmmbeFGD3o3KHHNbqDfuc+NlqeORaRpkzGPzjt5JhxQA9FvLoOVhFVdaDyBLOzSQZU6YPnqnntTgIUHnUpdVphdnJF7YcIO/JYFrGAzQb84TboOd45oteRqe7TkA43pAYe/4FOzLa+Fy88JagqP8kibXEQ5vKRvIO3rfDPxsovKZJX4B0wtf+MK1NXy55LFcaiRPMjZrXRlgBRgdQCxInYEaGFs6X1nz+xWMMwiWMnAXHZbwjMq5oLwTDVNmnZdvRHUcUphXSSMtt/dAPZgAmvDW8u++t+Z/NlM6no0jRlKykUZuyRDXKoMgmn6ake1ck94zULGFeErqFZsAgXgMphQYdJ5qamDVPYAkWKcdqKo6WAZu+ULjsh3Ou0+dPZur7/0xqjoAlDrqRK95zWs2VxJ4vbuEab3ruc997loKQqFtvwmSWbNOIrffmwE4bq41rrPvfgJybQONAm96nRC8vBK5I65nG7BngBNLNBJe7gqQoXkN3QwAQldf9X/Ri160Njcp2yeAuwfYlNHKVYFMWaVWEDIVqj7Kco7tQr3ZO6kNTZud2bp/GbTlxTS1WP6MjtY7SN4qTqRzlqTVCHWRdHVtGf5R9S0FYNpyt/nM7XMIDHSuipcYVIwEOFBuObnzrDK63u1+VtCsCWbKadooj0aAjgA1dG6pMhs6aGZBWw07p656fcZyEVbXtPlEm3x6PkNXeYAJVAQPxADR2nclYzWHaBzmKNQwhvrHHXRTUS3OBFBAHdu1jEmdoSm1ySGPrRTOpYz0jqPTCYOANSZqbg9oghY8oxI0PlC148g4st0nukbnEqcIAeNoDPe3WjYgCuC12nbut2c2Wb4c48ZrgKn9qQFlDORl1FZ2E8gApY1Cs79KvQQM79IwQsazOuT9jKtltRtKDJ2aLme31R5cIx00O6rZBu1XwJ4pAbzNSDOoG+XeHW9pYTZMIfY8D+d4JIw1LwIkqJ7w/c5Qwwzlyo6Dj/O7n7ADBMowFiNWr+dxFOFl42S81rvKrAecZgB0ftz403OpjHEoQxme2dLwjZPpBACANQHWuzqnU+TVpBLGSWpjInx2S/WMndu2sGR45aa6TGLzrKbKFFIoYJqXGNhGw3e9kMXSJIHrxUDgxTRqNkc0T2UQFqbRU4FAr2wMZV7PNrYkmEZwGKXpGlRL85aphjG5XBnluACkumTfYIIErSzgU2/fXcMLI4AmwQFQieXK9rehgUaq2VTA2z5LrcnrulENj/kso3FbTKa4ld+59dlWyvQeWDTQtFMLoLQDbitWjGpod2cPLGwsKTpsGmlr2zLO8ig0nukYvhtN1qDuHbfmHb2nhund6zepkRiG3tZIhKyhsEfJTQDZkh8FBi0SBDTUlcBaex5gEbMn3Sc4WIqCmIfthT2ThwVk5jIVWQVWglKvhhoARHnq4ZlAHNBzk9fb3HyMyhZNbo8EHph39F17FrYYJ6kpU5DSteut7Lm0+TBllZVOmW734i1CyKtor6Jo2O+Nu4yRznpJcYamkiijKbmxmkZtD4KmVETHQOleTIbtRHN9CoLJlcEkhhaaz13MxztgjeyCps/6v70H2negRaOBqKm449TccoNbjmS93t+6fRik5HSeIFU+DnGMHaq8Y9eUL1xwMIbenVWqFgaYBMyeABwvw37Ro/3v5XkyVobUC0sKGocSxlzU0WUnQCwCbEV5CQ5Nj9SfHaPhiogSkGvzxKgdnxiRkFvxCrOIcXBhqRlBPONTAMm9JSyAJZQSoJSvDM/z3lSyd1OncdnZtgusc8UO4xBB3tO4qwq1x+BWJ+oS8LVFTIMpPW9c2n4+H2npGEYPagktFju1kVEazet5lvJy3stITjLHyHRTLy0/pSTo8mDG/YZQP8CJmFJz2ASrMFgJu62JqS0xHjSOUcoJoXIa/GyVTNcSPBC/9KUvnRKu1FcdgWFM2iJsoC6rsLEn6sr15fW6D3B0Cka/OhRn0ZlaBqQptw2qAloblYotYT6dgGqzigPv06wJbYJtAMeca4f/W+y6mNg4Ir47rvVCAEOovXxjSu3w2lp0BMjNFAFuvRPfNZBGHFXJOPDYgCbhELbrUgUas8lb2TUaX4MykAmNocu4LlrM42A8emYbRUjOAjqg9Sz/m5HoN7YMltHT26pHR2ihReURWNN6Cax8m6aQtEMK2yc12+h2nmIj6YDRYGVjYtjNu5abbNQ7z7NtdnIc9kSW3cIBU9xjjC2UUaeXAg8G0Gs0roMQ2A2tFOma3OtGlStHD5ZKgJpLGAJMjSV/xbOpmaLJBNZmm/7q/eWS1Psa+SYQrEj4xn68Q+xAKML5wF6wrC1s2GdtlOEZhGuJD1l/3hFATSfxbsBA1WEIv3EGMlBTo826wMKN5rPd/J590uLU2jTVpQ3UMYdhTydRLWwl8Naj1Zv0hpKmvTjvxDk9u632qA2N/tjHPnZtTg3AtFCz67JpCFvjUXXOUR3UivJ5Jozh0hUbIW8vImqsbMBGoKmRljLzTNTfzq8E6tk+7geEFkDybtlaLf1OuK961aum+9hsPKPcdsIEdvVq4aS8RGWyfcrOU7+WPsOmnt0c9bYRLJHcM3WQMgl3NYC7tIAp0hutagg9S29vkUP/MyLlkWhYPfMRj3jE1HM0YInNPnq3xG2AQMNUQ6uGN3+nKK1QfWvYAlQxFADQmLmi6gR0ntWuaQXZmuRG0MooQt28a4zQVnvUHXVlPAfjASCDlG1lDZwWOMIWyvTe9kkAmrbeUQ4DG2jYYz7q38rgAIBpGkdqJXKH5wGsNgA0nWX0tvb0wkILG0tK4EU2W3FSA3shdNx0UAIS8dVQeidDk/dDiDwbqur444+fehJgsRkagcYY7VnQpPnmawfS8nYDgJQCwrLJRBujUx/tZOs55aqk6oroWp2BEACYoD03D0wZDFTqB3tmkJfWCVSAY7nYUZA2yvDsvDeMUhKYjgEUnAF1YJx7x3Z/ay0917Nh2FDzI92bYrTayzRbDyA0oAYhgIbh2yeo5GwxBo2kx+Z6ppr0Mo2OgjV4k7XGGZTA1NRQwKA+9PCWKFOPktDbyEEdCrYBTq5/o8uuZxPw7LjzhM7gbSRYfXlnsVWrRriG2nVeWQ2UNm86Y9716urd2rFFZwEAncszeZRsuzbSaO5S+3G3r2Uu9e6u0PAfB0zGWAsoazB0i2LpdI1vX0M9Xa9g5bdP88Mf/vCpV3nxluPQ2ATLVrG8GLeyBKjC3wW2gIRAeEKE1jhQUWA9UMO3mqfGVjfX8IqK6gJO11NBVB0hOQjRe6iv3k+4gAT86qlDtCj0uB7wODoNIMDW3gXeVz20Sfss6GTN7X7GM54xlUeNezf1pvowZcuwNYB6YRvJFwxcKsCULY8qW45L78IAwJHNUU+jmzUmgQWsBuM0PgBZO7flvwgUQ1EFyix62jQOz9O4LdT87Gc/e7IBUD2gsZsCsvJbI44AlE9o4i0tEZZXoqdn57AVChY22kw92h/gjW984yTUVkFvaY/2OfA8xq69t5v/7R3ZZ1QNzwrwnC/OkwuPabSXNvCOYz50YMtjWs87Wsoly8Yk5vkJ+CqsQagdL4aSyxvBAoTcStcApJdxGwnmOc95zkTxT33qU6cygQhboegG6dohRTkaWBkaGVicswZdkVeZcf56flNt1ZfdwesApmIhyvY3g7wlUwm2Hq63YyPs03Jq6i0gWFzEdTpEaaTYw9gWhtPJgMB5IMEmWLDd4vKOvI9ys7laBHFcU2bTZdwFnMY6cqlLA0C5Gp3B1/gLStfLDZ6hVw2jodC2htZI47IhLaEx5vDm0mMKPd6kdz3adQYMGaq5tlQTMJb60EApm0XPb9096qP0BKBSHyqnhX2Uo57UEsGrS/sbAW1LswYEZQOWOI/fsJV3Vy5GKcNPOwF4ezR4J+oYS3sWhmWjqXOxppbn31SAGVVTQmxZ+MaU9CS90yT5lgrVEKKsxW6aIam3j5uVv+QlL5m+63katwTwkpJScc0vojqaO8RAFfVtv2u/t6QaAfnOU2sDq2IjDT4SGmZreTSGctFjzKgc91oYEVMBDCGWeN7whjq2qrlOgi2oXGBmN5VZCCBNWbHhFlXpmUbVvT/W9gz/j1sgb1rAlCjUkEE7jRQca49mDdfCyRZ6xg5eXES0hX2alyNnd5y4Xl5saYoYi8BKdqqHalQshU0IW7nNGGzfIsJzDSZsSgqgtLBhq2IGTtcTsvoqX52b7TguyZG6c6iP6wAS4KkoQCgNgiosb0d7aCfnqHG/i2aXxOU52YPaYYzRbBrAxCoZWRmw5XdojEal299H72RTAIOGLygltqFB29cQGAwjaDj032hvxtzYm/1ezqvzFpQmFN4NtUBYGaPAQzDKbyQbSMpkI1wgAu56c4a865uFUF2a/x27lgLhPu/vWa07zABWrvpiX2CgSjEktQwE2qY9HwEnO2lMLS2xfZF7Ji3M6G3Qq79taOW3NhWnHvT0VlvQ0P7XAHQzmtfDsBDVgLb9z/gEotRcKx4ULGxxZAJp97J2LHG+8rKrHI1GEzgbBjiaww0waL8Vxv3W6ubqq5wGQANMn+y50ebyPxA3Y6FpKJiBjdVcrlYUbSotW8k7t7scZvMexaIWvQXxwgCTqhiz3cvJLSWAXnadiCk6Ft3VcOyatv21bi+BYx33WrU7AJTumRDKxsvbcq7dQAinwUdHSUvjTrAAURpFKRTFkoCsqSN1iMa12mPbkdos4UsdS2VoBkArmitLh2hNOowBIDwmNhHWwaqA1BY6xp68f6t1qnMbpjaGt7s5uxeZTbmogpuMNUY2CbNIbEGzFvYhGDTM8BVe14CYgNrQeAYnm5PE6NOIGMd1rVnbaHY6vTTNppeOKyS0zGq21rgzbAxZJt+4rkqhgpYzbdS7MbDsngzuZhL4v3lQGFJooUWlsZs2aNeTcp49E7h0Kp1Ee5TKwLPynq0TnEeaChxjMHtytHphgBknS/WpsWt4jEI9OUdHU0PNJhRN9RuKbpSXKwlgRYHRMZUlp6Zdz8qw1/jKb3prCV3j/J8xVhTAY4L1VpDovYqxxKLjrMXmbbsPYIvFNGe7teyaaYA13cPFxrRSINgxPCws3JynWLJlzUryLrbVDm+bdlfZESDzqzyWsuB3L68XtTMJlxJYsI1ex311jspqMpoGMh3UeUxDZTTniHCcG3erHwWbUZ5BPr8WcFNjxwDkfAdQ/jjQ2oT5FjZqum6ekfrpDFQKsDFeW33cBwMxZJ3DPJjIezYbUnqod9EW2ovRXUpmk/abt7VolbRQt3p+CsU8NWYvtA1Mu7hqPMwQbZd70j0tBU84PpiEXcQQJgBMlMFYIldqsFSAcdByzOwb8193Ve9yb2KvEsUCmu9tZkGFEDQAtTI4tSNQB/Dusdi0qK6NJ9xL5Z5wwglrqacYFuvoEOyawgfj3kqev94sgU1jw6zXM+c9KUJOB6NfPZInMO6oqtE0BJA0OUz00xaAxxxzzJqhSeWwdwCLiqLWmkTXyHYpnSN9Z7uUhH1xDgIbhTZGtfu9XWXNfQaYYj1U7/Of//zp9zwg9Rfd1lmMxOtA6tjuJ+3TJMtwjOLOg2Nkyk3JMBdmEDf3uhFngmSz+I33gCX0pnGdPPqcQQxkdD47oJ3s2QLOiYACn3NGtoGOevMX6AASsMYs/dEtHde83ZWbOr98RnGm5jepIxXZFsr+qlPTVqovRnS/QUeMqb7ABhhl+IkZsVe0R9NyF7F23VIDJoHoYW3X4lxLd2AXLJMd4q8eKYjHY3jBC14wgcXRRl0EBBANI6B7v+ndRnb9JioLVC2a3LSPpqhm2xQpXW/ZtPH/5jkpy/PzdLyH+gGpd8R0GK/An0HUF7/4xZNdI/vu2GOPnVQOTxCQsExxKu8itcK92LWxswuLgS0STAsL3F1UpYt6atDcUOBh7EnCbsl1bNBGV3onVQQUqRHXpNtFRYuVoHFl8KQwjPPsCRPZAQlA9fz2KWgO9XrTV9dba4/weC8NQpacrWxRa6qkDdGbNttSqMrHhFRnexdoC8xStFi52sK4FxuueeBAPb8v9Tj8sikZ5uIgfFzxsV6eld+UVOrDR+/VaAb1qLBWyyS0lkVrUpv7AYNaAxrDAVgJxZdwRMDcdz28OcnUHE+s5dQIzfUM0LYKbm0+9VMe4Uqb4PoLEGKvEqFsqSyXxkAl9vAerm3YwrXei/pqgWdAUC6gU88M45arL9y/Xj7L/NL8e51KGnvrenYCgTaNAgA0bJuIMgSda1FmwsoA1aiA0kI+GIdQ5cMCAAEQBCC5pznOsUPr67qnlRAwhd8IsiBeO9yqAyZQpp6PWVpjRhlsFBHrlkOjmlq/xu8A2gpV7b/tHvYO0AHouIVhHt9GHjuWCSgjxWYgtgE5MBBO67OIabTphGAeYRBqKz8RvPhFqQFC6+g9Q7v9oNuer2y/YjOuoe7aIbbVFsr0b7mQZii638FwVUYbcmGWprWmqts9FlCpIe/oXQKf65vvlDc3Rpo38tgQhsnLyEuZB8+4G0e5MYTAS6JuNCSjsv0hgch13NFmPLY7LYExfNkxriUYBjGhGHIQMPT89mY0fsWVx1wAKLWTwACz4QT/Yzch/hZI8jyZdab8KgegSsBqCZNWt2yrPdd4J3XAbkDVwgCpllz1GGajjw1VSeu5r+Oq4RqxhZ+BpqmsBF02G2MSkzS9hCeFZQCECpKu2RQMtgF7guGMdYqUtneSCCpAcWHbVpCKAEQj2KUsNFMSaDCXOii/hYowhTEi7ANUQEE9Nh3WewAJIBd8Y7MBeN7jsh4ry1CJ9Qw1gmzSewN5jb8QTCtp+59X1UxGAgcmACNs36kLXkkrJjRuVCol2wEIY702WW8cKLvEh91CyEBlWoyAW7vdt2Vh2wE2F7r9mxzOAZLnuU4MJq/NR/3GbYjXi2FtpFpamS350aqSTY+oN6JvzMA1ZWzq6eUEsz00KqG0nXBjL9jIbyVOs0nYPM3tbgGiXN1mIAJbEV6qhY0ClJakp8ZMilO+8jAV1gHw8pgBh92EfYCMB8UzajBz3Ab537X9tgHzf+wzjpE08kxoXGP5I9SJEHx7AqB/v7VWLhuHMSpUT3VJAaUO2hOaQKkIoGGHtHdkiwC1oCE1xlAFFgCg9pTNbsFSWEVZJYSxdbCdZ0l2LyuPq091NSyBSdsxJY9vV22x0XbMUgNm3MhiHCBsZ9n2xG5XkxYHFAPBKHlQQIHqGbMxVrMWlMfQpNbaQqdNsvxeDnAbg5aBV9SW8Jvjzfj1PNdTmW1W6jo5v8pqHtGYgKU+zfDcaC9or2CY+e9jtlw5uYRQ4pS/LduOOcoZaRFmYGsNGkzU2rwlVZds3pKrDR00VSQANavS4TfGNTZpFB3jAG2LAJTItauNI8bdR7YBsxvu9wicPJvc8Ro/8OSKYwhqIiO3DTOoMoZn3oh7MQY1k4tctBlrMW4dgJZBSx01qt7mGoX8y8Xx/O5p2KFEq1bTmt8HcxlslE0PmCh6BMy4W2q9fcycK84xTrfAGgTddFcMkPBb5Skvpd/GPYeK9GaYNj22+EibdbW23HxWX/m2rd83hhXGd92oUei9SiWNDTv2wHJfd0XjLRKoDCqrqRxtf9dUkjbebPS5pO1Gs5v1UP5u8ZYy6hpIHbfiW88WGXdXG99lT+42sq2S1rFhdjXwtiuvYgRZa/V28KpaNs3x76xuMH/9roQeADfzsfSA2d1jd4W/J46NTHja49H52fbx/9hl0cBfdJL2wgEz6tFxM4StePwnUgeW2WWePwovlIK66kj8bcfqC1ywWV9o+1jsUaJanuKqI3DJVWN+x/StifG7sw799rF3HW3JnBpdZZp/7FgFyX678iC2j619tKDAYH9dYseq3XJek6Aa19g+tg9HuUgFI1ftmB0rxToARX4HQ2eRK0lvH8t/NBhKFUlSNyb3fwDasbJqyOwrFG7wrFW5jZFsH1v3gAfEYSwsLEQiKzt37jztqKOOesWqcbP/qlo674wzzjjoyCOPPGe72bbusWrHnn/66acfcuCBB559+OGHM1vOZ7ocdthhp/yPAAMAqavxaXdmcGgAAAAASUVORK5CYII=';
$signData=$this->getSignatureInfo($id);
foreach($signData as $sign)
{
$type=$sign->document_details;
$signature_date=date("m-d-Y h:i A",strtotime($sign->signature_date));
$sData=[
"sig"=>$sign->signature,
'date'=>$signature_date
];
$data[$type]=(object)$sData;
}
return $data;
}
public function getExperienceDetailsForPdf($type,$id,$year_experience)
{
$caregiver_type = $type;
$caregiverId=$id;
$YearExperience=$year_experience;
$exprience_head=$this->getServiceHeadByType2($caregiver_type);
foreach($exprience_head as $key=>$exp_head){
$service_head_id = $exp_head->service_head_id;
$getCareExp = $this->getCareExp($caregiver_type,$service_head_id,$caregiverId);
if(!empty($getCareExp)){
$exprience_head[$key]->caregiver_experience=$getCareExp;
}else{
unset($exprience_head[$key]);
}
}
// return $exprience_head;
return array_values($exprience_head); //re-indexing array
}
public function getDemographicExp($demographics_exp)
{
$demographics=[];
$b=[];
foreach($demographics_exp as $key=>$val){
$exp_id = $key;
$exp_value = $val;
$service_name = $this->demographics_exp_byId($exp_id);
$b['experience_id']=$exp_id;
$b['service_name']=$service_name->experience_label;
$b['experience_value']=$exp_value;
array_push($demographics,$b);
}
return $demographics;
}
#function for Generating pdfs
public function Application_of_employment($ion_id,$cg_id,$data)
{
$experience=$data['cg']->years_of_exp;
$cg_typeData=$this->getQualificationEmployeeType($cg_id);
$type=$this->typeOfCaregiver($cg_typeData->qualification_type,$cg_typeData->employee_type);
if($type=="D"){
if($experience>0){
$perPage=$this->experiencePageSize($cg_id);
if($perPage>0 && $perPage<=1){
$end=5;
}if($perPage>1 && $perPage<=2){
$end=6;
}if($perPage>2 && $perPage<=3){
$end=7;
}if($perPage>3 && $perPage<=4){
$end=8;
}if($perPage>4 && $perPage<=5){
$end=9;
}if($perPage>5 && $perPage<=6){
$end=10;
}
$end2=($end+1);
$end3=($end2+1);
$end4=($end3+1);
$end5=($end4+1);
$pdf1=[
"slug"=>"APPLICATION_EMPLOYMENT_",
// "start"=>1,
// "end"=>6
"start"=>1,
"end"=>$end
];
$pdf2=[
"slug"=>"DOH_CHRC102_",
// "start"=>7,
// "end"=>null
"start"=>$end2,
"end"=>null
];
$pdf3=[
"slug"=>"DOH_CHRC103_",
// "start"=>8,
// "end"=>9
"start"=>$end3,
"end"=>$end4
];
$pdf4=[
"slug"=>"REGISTRY_RELEASE_",
// "start"=>10,
// "end"=>null
"start"=>$end5,
"end"=>null
];
#declaring files as pages for creating those into a single pdf
$data['pages']=[
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
'WECURO_HHA_APPLICATION_4pg',
'WECURO_HHA_APPLICATION_3pg',
'Employee_Health_2.php',
// 'WECURO_HHA_APPLICATION_6pg',
'NYDOH_CHRC_102_FORM2_2',
'NYDOH_103_FORM','NYDOH_103_FORM_2nd',
'HOME_CARE_REGISTRY_RELEASE_FORM'
];
#declaring files as pages for creating those into a single pdf
}else{
$pdf1=[
"slug"=>"APPLICATION_EMPLOYMENT_",
"start"=>1,
"end"=>4
];
$pdf2=[
"slug"=>"DOH_CHRC102_",
"start"=>5,
"end"=>null
];
$pdf3=[
"slug"=>"DOH_CHRC103_",
"start"=>6,
"end"=>7
];
$pdf4=[
"slug"=>"REGISTRY_RELEASE_",
"start"=>8,
"end"=>null
];
#declaring files as pages for creating those into a single pdf
$data['pages']=[
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
// 'WECURO_HHA_APPLICATION_4pg',
'WECURO_HHA_APPLICATION_3pg',
'Employee_Health_2.php',
// 'WECURO_HHA_APPLICATION_6pg',
'NYDOH_CHRC_102_FORM2_2',
'NYDOH_103_FORM','NYDOH_103_FORM_2nd',
'HOME_CARE_REGISTRY_RELEASE_FORM'
];
#declaring files as pages for creating those into a single pdf
}
$cred=[$pdf1,$pdf2,$pdf3,$pdf4];
}else{
if($experience>0){
$pdf1=[
"slug"=>"APPLICATION_EMPLOYMENT_",
"start"=>1,
"end"=>$end
];
$data['pages']=[
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
'WECURO_HHA_APPLICATION_4pg',
'WECURO_HHA_APPLICATION_3pg',
'Employee_Health_2.php',
// 'WECURO_HHA_APPLICATION_6pg',
];
}else{
$pdf1=[
"slug"=>"APPLICATION_EMPLOYMENT_",
"start"=>1,
"end"=>end
];
$data['pages']=[
'WECURO_HHA_APPLICATION_1st_Disclosure_Page',
'WECURO_HHA_APPLICATION_1st_Disclosure_Page2',
// 'WECURO_HHA_APPLICATION_4pg',
'WECURO_HHA_APPLICATION_3pg',
'Employee_Health_2.php',
// 'WECURO_HHA_APPLICATION_6pg',
];
}
$cred=[$pdf1];
}
#creating specific folder
$folder_name='USER_'.str_pad($ion_id, 6, "0", STR_PAD_LEFT);
if (!is_dir('uploads/Documents/'.$folder_name)) {
mkdir('./uploads/Documents/' . $folder_name, 0777, TRUE);
}
#creating specific folder
#file path for creating temp files and original files
$path['filePath']="uploads/Documents/".$folder_name."/";
#file path for creating temp files and original files
#filename
$path['fileName']=str_pad($ion_id, 6,"0",STR_PAD_LEFT).".pdf";
#filename
$response=generate_pdf_and_save(array("forms_pdf/generate_pdf_for_save"),$data,$path,$cred);
return $response;
}
#function for Generating pdfs
#type of caregiver
public function typeOfCaregiver($caregiver_type,$employment_type)
{
$q=$caregiver_type;
$e=$employment_type;
if(($q=="4" || $q=="5" || $q=="8") && $e=="contrator"){
$type="A";
}
if(($q=="6" || $q=="7") && $e=="contrator"){
$type="B";
}
if(($q=="4" || $q=="5" || $q=="8") && $e=="inhouse"){
$type="C";
}
if(($q=="6" || $q=="7") && $e=="inhouse"){
$type="D";
}
return $type;
}
#type of caregiver
#finding per page calculation for type D caregiver
public function experiencePageSize($id)
{
// $id=427;
$datas=$this->getNurseById($id);
$data['cg'] = $datas;
$caregiver_type=$data['cg']->qualification_type;
$caregiverId=$id;
$YearExperience=$data['cg']->years_of_exp;
$data['expTab'] = $this->getExperienceDetailsForPdf($caregiver_type,$caregiverId,$YearExperience);
$data['demographics_exp'] = $this->getDemographicExp(json_decode($datas->demographics_exp));
$i=0;
foreach($data['expTab'] as $expTab){
$i++;
foreach($expTab->caregiver_experience as $exp){
$i++;
}
}
foreach($data['demographics_exp'] as $dmg){
$i++;
}
$rows=($i+1);
$perPage=($rows/25);
return $perPage;
// pre($perPage);
}
#finding per page calculation for type D caregiver
#create pdfs(from editable pdfs using pdftk)for the very first time and
#also updation with every click on the disclosure&signature tab
public function updateEditablePdfs($cg_id,$extract)
{
// $cg_id=427;
$cg_typeData=$this->getQualificationEmployeeType($cg_id);
$type=$this->typeOfCaregiver($cg_typeData->qualification_type,$cg_typeData->employee_type);
$sigDatas=$this->CaregiverDashboard_model->getDocumentSignatureByCgId($cg_id);
if($extract=="AuthRelease"){
$doc=[
"AuthRelease"
];
}
if($extract==""){
if($type=="A"){
$doc=[
// "AuthRelease",
"ContractorAgreement",
"BackgroundCheck",
"iNineForm",
"wNineForm",
"DirectDiposit"
];
}if($type=="B"){
$doc=[
// "AuthRelease",
"ContractorAgreement",
"BackgroundCheck",
"iNineForm",
"wNineForm",
"DirectDiposit"
];
}if($type=="C"){
$doc=[
// "AuthRelease",
// "ContractorAgreement",
"BackgroundCheck",
"iNineForm",
// "wNineForm",
"DirectDiposit"
];
}if($type=="D"){
$doc=[
// "AuthRelease",
// "ContractorAgreement",
"BackgroundCheck",
"iNineForm",
// "wNineForm",
"DirectDiposit",
"Doh102",
"Doh103",
"RegistryRelease"
];
}
}
$doc2=[];
$len=count($doc);
for($i=0;$i<10;$i++){
$data=array();
if(in_array($sigDatas[$i]->document_details,$doc)){
$data=array();
$data['document_details']=$sigDatas[$i]->document_details;
$data['document_html']=$sigDatas[$i]->document_html;
$data['caregiver_id']=$sigDatas[$i]->caregiver_id;
$data['signature']=$sigDatas[$i]->signature;
$data['signature_date']=$sigDatas[$i]->signature_date;
$data['signature_type']=$sigDatas[$i]->signature_type;
if($type=="D"){
$data['status']="0";
}else{
$data['status']="1";
}
$doc2[]=$data['document_details'];
// pre($data);
$response=$this->pdfGeneration($data,$concentStatus="0");
}
}
$doc3=array_diff($doc,$doc2);
foreach($doc3 as $d){
$data=array();
$data['document_details']=$d;
$data['document_html']="";
$data['caregiver_id']=$cg_id;
$data['signature']="";
$data['signature_date']="";
$data['signature_type']="";
if($type=="D"){
$data['status']="0";
}else{
$data['status']="1";
}
// pre($data);
$response=$this->pdfGeneration($data,$concentStatus="0");
}
// die();
return $response;
}
#create pdfs(from editable pdfs using pdftk)for the very first time and
#also updation with every click on the disclosure&signature tab
//Caregiver Application Percentage Calculation Start********************
function updateCaregiverApplicationPercentage($id){
// echo 'updateCaregiverApplicationPercentage'.$id;
$cg_data=$this->getNurseById($id);
$preferancesData=$this->getShiftPref($id);
$health_assessment=$this->get_health_assessmentById($id);
$tuberculosis=$this->get_tuberculosisById($id);
if(count($preferancesData)>0) $cg_data->preferancesData=$preferancesData; else $cg_data->preferancesData=null;
if(count($health_assessment)>0) $cg_data->health_assessment=$health_assessment; else $cg_data->health_assessment=null;
if(count($tuberculosis)>0) $cg_data->tuberculosis=$tuberculosis; else $cg_data->tuberculosis=null;
$cg_data=objToArray($cg_data);
$percentage_Obj=json_decode($cg_data['from_tab_status_pctg']);
// pre($percentage_Obj);
// pre($cg_data);
// die;
//UPDATE BASIC TAB Percentage Start
$basic_tab_required=['id','ion_user_id','caregiver_id','fname','lname','email','qualification_type','phone','gender','dob','country_of_birth','ethnicity','soc_sec','primary_langualge','referral_source','employee_type','address1','state1','county1','city1','zipcode1','citizen','position_applied','availability_borough','preferancesData','Emergency_Contact_Name','Emergency_Contact_Relationship','Emergency_Contact_Telephone','Emergency_Contact_Address'];
$basic_tab_required_pending=0;
foreach ($basic_tab_required as $key) {
if($cg_data[$key]==null || $cg_data[$key]==''){
// echo '******************BASIC***************<br>';
// echo $key.'<br>';
$basic_tab_required_pending++;
}
}
if($basic_tab_required_pending==0){
if($cg_data['qualification_type']==4){
$percentage_Obj->form1=21;
}else if($cg_data['qualification_type']==6 || $cg_data['qualification_type']==7){
$percentage_Obj->form1=22;
}else{
$percentage_Obj->form1=23;
}
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
$this->db->where('id', $id);
$this->db->update('caregiver', $update);
unset($update);
}
//UPDATE BASIC TAB Percentage END
//UPDATE Exp & Skill Percentage Start
$exp_skill_tab_required=['id','ion_user_id','years_of_exp'];
$exp_skill_tab_required_pending=0;
foreach ($exp_skill_tab_required as $key) {
if($cg_data[$key]==null || $cg_data[$key]==''){
// echo '******************Exp & Skill***************<br>';
// echo $key.'<br>';
$exp_skill_tab_required_pending++;
}
}
if($exp_skill_tab_required_pending==0){
$percentage_Obj->form2=20;
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
$this->db->where('id', $id);
$this->db->update('caregiver', $update);
unset($update);
}
//UPDATE Exp & Skill Percentage END
//UPDATE Emp & Edu Percentage Start
$emp_edu_tab_required=['employementHistory', 'Profesonal_References_Name', 'Profesonal_References_Address', 'Profesonal_References_Telephone', 'nursing_license_type','educationBackground', 'employementHistory2',];
$emp_edu_tab_required_pending=0;
foreach ($emp_edu_tab_required as $key) {
if($cg_data[$key]==null || $cg_data[$key]==''){
// echo '******************Emp & Edu***************<br>';
// echo $key.'<br>';
$emp_edu_tab_required_pending++;
}
}
if($emp_edu_tab_required_pending==0){
$percentage_Obj->form4=15;
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
$this->db->where('id', $id);
$this->db->update('caregiver', $update);
unset($update);
}
//UPDATE Emp & Edu Percentage END
//UPDATE health & Physical Percentage Start
$health_phy_tab_required=['health_assessment','tuberculosis','hepatatis_vaccine','positive_ppd','under_care_physician','drug_screen'];
$health_phy_tab_required_pending=0;
foreach ($health_phy_tab_required as $key) {
if($cg_data[$key]==null || $cg_data[$key]==''){
// echo '******************health & Physical***************<br>';
// echo $key.'<br>';
$health_phy_tab_required_pending++;
}
}
if($health_phy_tab_required_pending==0){
$percentage_Obj->form5=20;
$update['from_tab_status_pctg']=json_encode($percentage_Obj);
$this->db->where('id', $id);
$this->db->update('caregiver', $update);
unset($update);
}
//UPDATE health & Physical Percentage END
//UPDATE Documents Upload Percentage Start
$this->applicationPercentageCalculator($id);
//UPDATE Documents Upload Percentage END
}
//Caregiver Application Percentage Calculation END ********************
function model_get_available_caregivers($data){
try{
/*Available Caregivers
| 1. fetch caregivers based on their preferred time slots.
| 2. Apply basic filter:
| a. Caregivers without any schedule for the day:
| b. Caregivers with declined schedules:
| c. Caregivers with unconfirmed schedules and current time greater than scheduled end time:
| 3. Apply Advance filter:
| a. open cases required service types.
| b. open cases language preferrence.
| c. open cases location distance.
| d. open cases required Service Activity/Therapy Needed.
*/
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
$start=isset($data['start'])?(0+(int)($data['start'])):0;
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
/*open cases*/
$this->db->distinct();
$this->db->select('p.level_of_service,p.primary_language,p.service_ids');
$this->db->from('patient_details p');
$this->db->join('caregiver_schedule cs', 'p.id = cs.patient_id', 'left');
$this->db->join('caregiver_patient_clock_in_out cio', 'cs.id = cio.schedule_id', 'left');
$this->db->where('p.active_status', 1);
$this->db->group_start();
$this->db->where('(p.referral_type = "New" AND cs.patient_id IS NULL)');
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Unconfirmed" AND NOW() > cs.end)');
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Accepted" AND NOW() > cs.end AND cio.schedule_id IS NULL)');
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Declined")');
$this->db->group_end();
// $this->db->get_compiled_select();
$openCases=$this->db->get()->result_array();
$service_types_arr=array_unique(array_column($openCases,'level_of_service'));
$service_ids_arr=array_unique(array_column($openCases,'service_ids'));
$primary_language_ids_arr=array_unique(
array_merge(
...array_map(function($item) {
return explode(',', $item['primary_language']);
}, $openCases)
)
);
if(count($primary_language_ids_arr)>0){
$this->db->distinct();
$this->db->select('ml.*');
$this->db->from('master_language ml');
$this->db->where_in('ml.id', $primary_language_ids_arr);
$masterLanguage=$this->db->get()->result_array();
$primary_language_arr=array_unique(array_column($masterLanguage,'name'));
}else{
$primary_language_arr=[];
}
/*open cases*/
/*avl caregivers*/
#main-query
$this->db->distinct();
$this->db->select(
'SQL_CALC_FOUND_ROWS
c.id,
c.fname,
c.lname,
CONCAT(c.fname, " ",c.lname) as name,
c.qualification_type,
mcs.name AS service_type,
GROUP_CONCAT(DISTINCT ce.experience_id) AS experience_ids,
c.email,
c.phone,
c.primary_langualge,
c.gender,
c.city1 AS main_city,
c.zipcode1 AS main_zipcode',false
);
$this->db->from('caregiver c');
$this->db->join('caregiver_schedule cs', 'c.id = cs.caregiver_id', 'left');
$this->db->join('master_cg_skills mcs', 'c.qualification_type = mcs.id', 'left');
$this->db->join('schedule_preferences sp', 'c.id = sp.nurse_id', 'inner');
$this->db->join('caregiver_experience ce', 'c.id = ce.caregiver_id', 'left');
#main-query
#basic filter:
$this->db->group_start();
$this->db->where('c.status','1');
$this->db->where('c.verification_status','verified');
$this->db->group_end();
#basic filter
#Advance filter:
//schedules
$this->db->group_start();
$this->db->where('(cs.id IS NULL AND (sp.day = 1 OR (sp.day > 1 AND FIND_IN_SET(DAYOFWEEK(CURRENT_DATE), sp.day - 1))))');
$this->db->or_where('(cs.acceptance_status = "Declined" AND (sp.day = 1 OR (sp.day > 1 AND FIND_IN_SET(DAYOFWEEK(CURRENT_DATE), sp.day - 1))))');
$this->db->or_where('(cs.acceptance_status = "Unconfirmed" AND NOW() > cs.end AND (sp.day = 1 OR (sp.day > 1 AND FIND_IN_SET(DAYOFWEEK(CURRENT_DATE), sp.day - 1))))');
$this->db->group_end();
if(count($openCases)>0){
//service types
if(count($service_types_arr)>0){
$this->db->group_start();
$this->db->where_in('c.qualification_type', $service_types_arr);
$this->db->group_end();
}
//language preferrence
if(count($primary_language_arr)>0){
$this->db->group_start();
for($i=0;$i<count($primary_language_arr);$i++){
$lang=$primary_language_arr[$i];
if($i>0){
$this->db->or_where('FIND_IN_SET("'.$lang.'", REPLACE(c.primary_langualge, "/", ",")) > 0');
}else{
$this->db->where('FIND_IN_SET("'.$lang.'", REPLACE(c.primary_langualge, "/", ",")) > 0');
}
}
$this->db->group_end();
}
//service activity/therapy
if(count($service_ids_arr)>0){
$this->db->group_start();
$this->db->where_in('ce.experience_id', $service_ids_arr);
$this->db->group_end();
}
}else{
$this->db->group_start();
$this->db->where('1=2');
$this->db->group_end();
}
#Advance filter: service types
#UI Advance filter:
//ordering
$this->db->group_by('c.id');
if($order_column==0){
$this->db->order_by('c.id', $order_type);
}elseif($order_column==1) {
$this->db->order_by('mcs.name', $order_type);
}elseif($order_column==2){
$this->db->order_by('c.fname', $order_type);
}elseif($order_column==3){
$this->db->order_by('c.email', $order_type);
}elseif($order_column==4){
$this->db->order_by('c.phone', $order_type);
}elseif($order_column==5){
$this->db->order_by('c.city1', $order_type);
}
//searching
if(isset($search) && $search!=''){
$this->db->group_start();
$this->db->like('c.id', $search);
$this->db->or_like('mcs.name', $search);
$this->db->or_like("CONCAT(c.fname,' ',c.lname)", $search);
$this->db->or_like('c.email', $search);
$this->db->or_like('c.phone', $search);
$this->db->or_like('c.city1', $search);
$this->db->group_end();
}
//pagination
if($from_api==''){
$this->db->limit($limit,$start);
}
#UI Advance filter:
/*avl caregivers*/
$query=$this->db->get();
$availableCaregivers=$query->result_array();
$availableCaregiversCount=$query->num_rows();
$main_query=$this->db->last_query();
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
$response=(object)[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>(object)[
'total_count'=>$total_count,
'count'=>$availableCaregiversCount,
'open_cases'=>$availableCaregivers,
'query'=>$main_query
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_available_caregivers: ".$e->getMessage();
echo $getMsg;
}
}
function model_get_cg_patients_list($data){
try{
//patients seen by this nurse
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
$start=isset($data['start'])?(0+(int)($data['start'])):0;
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
$userid=isset($data['userid'])?intval($data['userid']):0;
$startDate=isset($data['start_date'])&&$data['start_date']!=""?trim($data['start_date']):null;
$endDate=isset($data['end_date'])&&$data['end_date']!=""?trim($data['end_date']):null;
$this->db->distinct();
$this->db->select(
'SQL_CALC_FOUND_ROWS
p.id,
p.first_name,
p.last_name,
CONCAT(p.first_name, " ", p.last_name) AS name,
p.patient_id as unique_id,
p.patient_email as email,
p.telephone,
p.level_of_service,
mcs.name AS service_type,
p.address,
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.City")) AS main_city,
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.Zipcode")) AS main_zipcode',false
);
$this->db->from('caregiver_schedule cs');
$this->db->join('caregiver c','cs.caregiver_id=c.id');
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id');
$this->db->join('patient_details p','cs.patient_id=p.id');
$this->db->join('master_cg_skills mcs','p.level_of_service=mcs.id');
$this->db->join('users u','u.id=p.ion_user_id');
$this->db->group_start();
$this->db->where(array('u.active' => 1));
$this->db->where(array('p.active_status' => 1));
$this->db->where('cs.status', '1');
$this->db->where('cs.acceptance_status', 'Reported');
$this->db->where('cs.timestamp BETWEEN "'.$startDate.'" AND "'.$endDate.'"', null, false);
$this->db->where('cio.clock_out_time IS NOT NULL');
$this->db->where('p.active_status', '1');
$this->db->where('c.ion_user_id', $userid);
$this->db->group_end();
if($order_column==0){
$this->db->order_by('p.id', $order_type);
}elseif($order_column==1) {
$this->db->order_by('mcs.name', $order_type);
}elseif($order_column==2){
$this->db->order_by('p.first_name', $order_type);
}elseif($order_column==3){
$this->db->order_by('p.patient_email', $order_type);
}elseif($order_column==4){
$this->db->order_by('p.telephone', $order_type);
}elseif($order_column==5){
$this->db->order_by('p.address', $order_type);
}
if(isset($search) && $search!=''){
$this->db->group_start();
$this->db->like('p.id', $search);
$this->db->or_like('mcs.name', $search);
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)", $search);
$this->db->or_like('p.patient_email', $search);
$this->db->or_like('p.telephone', $search);
$this->db->or_like('p.address', $search);
$this->db->group_end();
}
if($from_api==''){
$this->db->limit($limit,$start);
}
$query=$this->db->get();
$patientsList=$query->result_array();
$patientsListCount=$query->num_rows();
$main_query=$this->db->last_query();
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
$response=(object)[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>(object)[
'total_count'=>$total_count,
'count'=>$patientsListCount,
'patients'=>$patientsList,
'query'=>$main_query
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_patients_list: ".$e->getMessage();
echo $getMsg;
}
}
function model_get_cg_available_services($data){
try{
//service available matching this caregiver profile
/*
| 1. New patients who didn't get any schedule yet.
| 2. Unconfirmed schedules [by caregiver]. (If current time crosses the scheduled end time).
| 3. Declined schedules [by caregiver].
| 4. Accepted schedules [by caregiver]. (If there is no clocked-in time between that scheduled start & end time).
| filter:
| based upon this caregiver service_type, primary languages, service ids.
*/
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
$start=isset($data['start'])?(0+(int)($data['start'])):0;
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
$userid=isset($data['userid'])?intval($data['userid']):0;
/*caregiver info*/
$this->db->select('c.id, c.primary_langualge, c.qualification_type');
$this->db->from('caregiver c');
$this->db->where('c.ion_user_id', $userid);
$this->db->where('c.status', 1);
$this->db->where('c.verification_status', 'verified');
$cgInfo=$this->db->get()->result();
$qualificationType=$cgInfo[0]->qualification_type;
$languageArr=explode('/',$cgInfo[0]->primary_langualge);
$this->db->distinct();
$this->db->select('ml.*');
$this->db->from('master_language ml');
$this->db->where_in('ml.name',$languageArr);
$cgInfo2=$this->db->get()->result_array();
$primaryLanguageArr=array_unique(array_column($cgInfo2,'id'));
$this->db->distinct();
$this->db->select('ce.experience_id');
$this->db->from('caregiver c');
$this->db->join('caregiver_experience ce', 'c.id = ce.caregiver_id', 'left');
$this->db->where('c.ion_user_id', $userid);
$this->db->where('c.status', 1);
$this->db->where('c.verification_status', 'verified');
$cgInfo3=$this->db->get()->result_array();
$experienceIdsArr=array_column($cgInfo3, 'experience_id');
/*caregiver info*/
$this->db->distinct();
$this->db->select(
'SQL_CALC_FOUND_ROWS
p.id,
p.reference_information,
p.reference_id,
p.referral_type,
p.patient_id,
p.first_name,
p.last_name,
CONCAT(p.first_name, " ", p.last_name) as name,
p.gender,
p.patient_email as email,
p.telephone,
p.primary_language,
p.level_of_service,
mcs.name AS service_type,
p.address,
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.City")) AS main_city,
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.Zipcode")) AS main_zipcode,',false
);
$this->db->from('patient_details p');
$this->db->join('master_cg_skills mcs', 'p.level_of_service = mcs.id', 'left');
$this->db->join('caregiver_schedule cs', 'p.id = cs.patient_id', 'left');
$this->db->join('caregiver_patient_clock_in_out cio', 'cs.id = cio.schedule_id', 'left');
$this->db->where('p.active_status', 1);
$this->db->where('p.level_of_service',$qualificationType);
// $this->db->where_in('p.primary_language',$primaryLanguageArr);
$this->db->where_in('p.service_ids',$experienceIdsArr);
$this->db->group_start();
$this->db->where('(p.referral_type = "New" AND cs.patient_id IS NULL)');
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Unconfirmed" AND NOW() > cs.end)');
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Accepted" AND NOW() > cs.end AND cio.schedule_id IS NULL)');
$this->db->or_where('(cs.status = 1 AND cs.acceptance_status = "Declined")');
$this->db->group_end();
if($order_column==0){
$this->db->order_by('p.id', $order_type);
}elseif($order_column==1) {
$this->db->order_by('mcs.name', $order_type);
}elseif($order_column==2){
$this->db->order_by('p.first_name', $order_type);
}elseif($order_column==3){
$this->db->order_by('p.patient_email', $order_type);
}elseif($order_column==4){
$this->db->order_by('p.telephone', $order_type);
}elseif($order_column==5){
$this->db->order_by('p.address', $order_type);
}
if(isset($search) && $search!=''){
$this->db->group_start();
$this->db->like('p.id', $search);
$this->db->or_like('mcs.name', $search);
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)", $search);
$this->db->or_like('p.patient_email', $search);
$this->db->or_like('p.telephone', $search);
$this->db->or_like('p.address', $search);
$this->db->group_end();
}
if($from_api==''){
$this->db->limit($limit,$start);
}
$query=$this->db->get();
$openCases=$query->result_array();
$openCasesCount=$query->num_rows();
$main_query=$this->db->last_query();
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
$response=(object)[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>(object)[
'total_count'=>$total_count,
'count'=>$openCasesCount,
'services'=>$openCases,
'query'=>$main_query
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_available_services: ".$e->getMessage();
echo $getMsg;
}
}
function model_get_cg_recent_visits($data){
try{
//quick overview of recent visits with the ability to click through to detailed reports or care plans.
/*
| No, Patient Name, Service Type, Clock In, Clock Out, Status, Option(view report).
| Accepted/Reported(status=1) + Clocked Out
| date filtered upon clocked out time (for now fetch last 30days visits only)
*/
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
$start=isset($data['start'])?(0+(int)($data['start'])):0;
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'month';
$userid=isset($data['userid'])?intval($data['userid']):0;
$interval=isset($data['interval'])?intval($data['interval']):0;
// $startDate=isset($data['start_date'])&&$data['start_date']!=""?trim($data['start_date']):null;
// $endDate=isset($data['end_date'])&&$data['end_date']!=""?trim($data['end_date']):null;
$this->db->distinct();
$this->db->select(
'SQL_CALC_FOUND_ROWS
p.id AS patient_id,
CONCAT(p.first_name, " ", p.last_name) AS name,
p.level_of_service,
mcs.name AS service_type,
p.address,
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.City")) AS main_city,
JSON_UNQUOTE(JSON_EXTRACT(p.address, "$.Zipcode")) AS main_zipcode,
cs.acceptance_status,
cs.id AS schedule_id,
cio.clock_in_time,
cio.clock_out_time',false
);
$this->db->from('caregiver_schedule cs');
$this->db->join('caregiver c','cs.caregiver_id=c.id');
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id');
$this->db->join('patient_details p','cs.patient_id=p.id');
$this->db->join('master_cg_skills mcs','p.level_of_service=mcs.id');
$this->db->group_start();
$this->db->where('cs.status', '1');
$this->db->group_start();
$this->db->where('cs.acceptance_status','Accepted');
$this->db->or_where('cs.acceptance_status','Reported');
$this->db->group_end();
if($interval<=0){
$this->db->where('DATE(cio.clock_out_time)>=DATE_SUB(CURDATE(),INTERVAL 30 DAY)');
}else{
$this->db->where('DATE(cio.clock_out_time)>=DATE_SUB(CURDATE(),INTERVAL 60 DAY)');
$this->db->where('DATE(cio.clock_out_time)<DATE_SUB(CURDATE(),INTERVAL 30 DAY)');
}
$this->db->where('cio.status',1);
$this->db->where('p.active_status','1');
$this->db->where('c.ion_user_id',$userid);
$this->db->group_end();
if($order_column==0){
$this->db->order_by('cs.id', $order_type);
}elseif($order_column==1) {
$this->db->order_by('mcs.name', $order_type);
}elseif($order_column==2){
$this->db->order_by('p.first_name', $order_type);
}elseif($order_column==3){
$this->db->order_by('cio.clock_in_time', $order_type);
}elseif($order_column==4){
$this->db->order_by('cio.clock_out_time', $order_type);
}elseif($order_column==5){
$this->db->order_by('cs.acceptance_status', $order_type);
}
if(isset($search) && $search!=''){
$this->db->group_start();
$this->db->like('p.id', $search);
$this->db->or_like('mcs.name', $search);
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)", $search);
$this->db->or_like('cio.clock_in_time', $search);
$this->db->or_like('cio.clock_out_time', $search);
$this->db->or_like('cs.acceptance_status', $search);
$this->db->group_end();
}
if($from_api==''){
$this->db->limit($limit,$start);
}
$query=$this->db->get();
$recentVisits=$query->result_array();
$recentVisitsCount=$query->num_rows();
$main_query=$this->db->last_query();
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
$response=(object)[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>(object)[
'total_count'=>$total_count,
'count'=>$recentVisitsCount,
'visits'=>$recentVisits,
'query'=>$main_query
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_recent_visits: ".$e->getMessage();
echo $getMsg;
}
}
function model_get_cg_schedules($data){
try{
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
$start=isset($data['start'])?(0+(int)($data['start'])):0;
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):'default';
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
$userid=isset($data['userid'])?intval($data['userid']):0;
$startDate=isset($data['start_date'])&&$data['start_date']!=""?trim($data['start_date']):null;
$endDate=isset($data['end_date'])&&$data['end_date']!=""?trim($data['end_date']):null;
$this->db->distinct();
$this->db->select(
'SQL_CALC_FOUND_ROWS
(CASE
WHEN DATE(CURRENT_TIMESTAMP()) > cs.end THEN "past"
WHEN DATE(CURRENT_TIMESTAMP()) < cs.end THEN "present"
ELSE ""
END) AS tense,
(CASE
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status="Unconfirmed"
AND CURRENT_TIMESTAMP() < cs.end
) THEN "unconfirmed"
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status="Accepted"
AND CURRENT_TIMESTAMP() < cs.end
) THEN "upcoming"
WHEN (cio.clock_in_time IS NOT NULL
AND (
((cio.clock_out_time IS NULL OR cio.clock_out_time IS NOT NULL) AND cs.acceptance_status="Accepted")
OR (cio.clock_out_time IS NULL AND cs.acceptance_status="Reported")
)
) THEN "ongoing"
WHEN (cio.clock_in_time IS NOT NULL
AND cio.clock_out_time IS NOT NULL
AND cs.acceptance_status="Reported"
) THEN "completed"
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status IN("Unconfirmed","Accepted")
AND CURRENT_TIMESTAMP() > cs.end
) THEN "missed"
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status="Declined"
) THEN "declined"
ELSE "undefined"
END) AS live_status,
cs.id AS schedule_id,
p.id AS patient_id,
CONCAT(p.first_name, " ", p.last_name) AS patient_name,
CONCAT(c.fname, " ", c.lname) AS caregiver_name,
v.vedor_name AS vendor_name,
cs.acceptance_status,
cs.start AS start_time,
cs.end AS end_time,
cio.clock_in_time,
cio.clock_out_time',false
);
$this->db->from('caregiver_schedule cs');
$this->db->join('caregiver c','cs.caregiver_id=c.id');
$this->db->join('patient_details p','cs.patient_id=p.id');
$this->db->join('master_vendor v','p.reference_id=v.id','left');
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id','left');
$this->db->where('cs.status',1);
$this->db->where('c.ion_user_id',$userid);
$this->db->where('c.status',1);
$this->db->where('c.verification_status', 'verified');
$this->db->where('p.active_status','1');
$this->db->where('DATE(cs.end) BETWEEN "'.$startDate.'" AND "'.$endDate.'"');
if($order_column=='default'){
$this->db->order_by('cs.start', 'ASC');
}else if($order_column==0){
$this->db->order_by('cs.id',$order_type);
}elseif($order_column==1){
$this->db->order_by('p.first_name',$order_type);
}elseif($order_column==2){
$this->db->order_by('v.vedor_name',$order_type);
}
if(isset($search) && $search!=''){
$this->db->group_start();
$this->db->like('cs.id', $search);
$this->db->or_like("CONCAT(p.first_name,' ',p.last_name)",$search);
$this->db->or_like("v.vedor_name",$search);
$this->db->group_end();
}
if($from_api==''){
$this->db->limit($limit,$start);
}
$query=$this->db->get();
$openCases=$query->result_array();
$openCasesCount=$query->num_rows();
$main_query=$this->db->last_query();
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
/*find latest ongoing & upcoming schedule*/
// $this->db->select('cs.id');
// $this->db->from('caregiver_schedule cs');
// $this->db->join('caregiver_patient_clock_in_out cio', 'cs.id = cio.schedule_id', 'LEFT');
// $this->db->where_in('cs.id', array(253, 254, 255, 265));
// $this->db->where('cs.acceptance_status', 'Accepted');
// $this->db->where('cio.clock_in_time IS NULL');
// $this->db->where('cio.clock_out_time IS NULL');
// $this->db->where('CURRENT_TIMESTAMP() < cs.end', NULL, FALSE);
// $this->db->order_by('cs.start', 'ASC');
// $this->db->limit(1, 0);
// $query2=$this->db->get();
// $csInfo2=$query2->row();
// $upcoming_schedule_id=isset($csInfo2->id)?intval($csInfo2->id):0;
/*find latest ongoing & upcoming schedule*/
$response=(object)[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>(object)[
'total_count'=>$total_count,
'count'=>$openCasesCount,
'schedules'=>$openCases,
'query'=>$main_query
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_schedules: ".$e->getMessage();
echo $getMsg;
}
}
function model_get_cg_scheduling_actions($data){
try{
$userid=isset($data['userid'])?intval($data['userid']):0;
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
$overall_permission=false;
if($userid>0 && $schedule_id>0){
$this->db->distinct();
$this->db->select(
'(CASE
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status="Unconfirmed"
AND CURRENT_TIMESTAMP() < cs.end
) THEN "unconfirmed"
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status="Accepted"
AND CURRENT_TIMESTAMP() < cs.end
) THEN "upcoming"
WHEN (cio.clock_in_time IS NOT NULL
AND (
((cio.clock_out_time IS NULL OR cio.clock_out_time IS NOT NULL) AND cs.acceptance_status="Accepted")
OR (cio.clock_out_time IS NULL AND cs.acceptance_status="Reported")
)
) THEN "ongoing"
WHEN (cio.clock_in_time IS NOT NULL
AND cio.clock_out_time IS NOT NULL
AND cs.acceptance_status="Reported"
) THEN "completed"
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status IN("Unconfirmed","Accepted")
AND CURRENT_TIMESTAMP() > cs.end
) THEN "missed"
WHEN (cio.clock_in_time IS NULL
AND cio.clock_out_time IS NULL
AND cs.acceptance_status="Declined"
) THEN "declined"
ELSE "undefined"
END) AS live_status,
IF(cio.clock_in_time IS NULL,1,0) AS clock_in_permission,
IF(cio.clock_out_time IS NULL,1,0) AS clock_out_permission,
IF(cio.clock_in_time IS NOT NULL AND cio.clock_out_time IS NULL,1,0) AS add_notes_permission,
cs.id AS schedule_id,
c.id AS caregiver_id,
p.id AS patient_id,
CONCAT(p.first_name, " ", p.last_name) AS patient_name,
CONCAT(c.fname, " ", c.lname) AS caregiver_name,
cs.acceptance_status,
cs.start AS start_time,
cs.end AS end_time,
cio.clock_in_time,
cio.clock_out_time'
);
$this->db->from('caregiver_schedule cs');
$this->db->join('caregiver c','cs.caregiver_id=c.id');
$this->db->join('patient_details p','cs.patient_id=p.id');
$this->db->join('caregiver_patient_clock_in_out cio','cs.id=cio.schedule_id','left');
$this->db->where('cs.id',$schedule_id);
$this->db->where('cs.status',1);
$this->db->where('c.ion_user_id',$userid);
$this->db->where('c.status',1);
$this->db->where('c.verification_status', 'verified');
$this->db->where('p.active_status','1');
$query=$this->db->get();
// $query->num_rows();
$result=$query->row();
$live_status=isset($result->live_status)?trim($result->live_status):'';
$clock_in_permission=isset($result->clock_in_permission)&&intval($result->clock_in_permission)>0?true:false;
$clock_out_permission=isset($result->clock_out_permission)&&intval($result->clock_out_permission)>0?true:false;
$add_notes_permission=isset($result->add_notes_permission)&&intval($result->add_notes_permission)>0?true:false;
if($live_status=='upcoming' || ($live_status=='ongoing' && $clock_out_permission!==false)){
$overall_permission=true;
}
}
$response=(object)[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>(object)[
'caregiver_id'=>isset($result->caregiver_id)?intval($result->caregiver_id):0,
'patient_id'=>isset($result->patient_id)?intval($result->patient_id):0,
'schedule_id'=>isset($result->schedule_id)?intval($result->schedule_id):0,
'live_status'=>$live_status,
'overall_permission'=>$overall_permission,
'clock_in_permission'=>$clock_in_permission,
'clock_out_permission'=>$clock_out_permission,
'add_notes_permission'=>$add_notes_permission
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_scheduling_actions: ".$e->getMessage();
echo $getMsg;
}
}
function model_get_cg_visit_notes($data){
try{
$user_id=isset($data['user_id'])?intval($data['user_id']):0;
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
$this->db->distinct();
$this->db->select('pr.id,pr.visit_info,pr.quick_notes');
$this->db->from('caregiver_schedule cs');
$this->db->join('caregiver c', 'cs.caregiver_id = c.id');
$this->db->join('patient_report pr', 'cs.id = pr.schedule_id AND cs.caregiver_id = pr.caregiver_id AND cs.patient_id = pr.patient_id', 'left');
$this->db->where('cs.id',$schedule_id);
$this->db->where('c.ion_user_id',$user_id);
$query=$this->db->get();
$result=$query->row();
// echo $this->db->last_query();
// $visit_info=isset($result->visit_info)&&$result->visit_info!=null&&trim($result->visit_info)!=''?json_decode($result->visit_info,true):[];
// $quick_notes=isset($visit_info['Notes'])?trim($visit_info['Notes']):'';
$quick_notes=isset($result->quick_notes)&&$result->quick_notes!=null?trim($result->quick_notes):'';
$response=(object)[
'status'=>200,
'msg'=>"fetched successfully",
'data'=>[
'notes'=>$quick_notes
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_visit_notes: ".$e->getMessage();
echo $getMsg;
}
}
function model_get_cg_tasks($data){
try{
$user_id=isset($data['user_id'])?intval($data['user_id']):0;
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
$this->db->distinct();
$this->db->select(
"ctl.id,
ctl.name,
ctl.title,
(CASE
WHEN (
SELECT COUNT(cio.id)
FROM caregiver_patient_clock_in_out cio
JOIN caregiver c ON cio.caregiver_id=c.id
WHERE JSON_CONTAINS(task_list, CONCAT('[',ctl.id,']'))
AND cio.schedule_id=$schedule_id
AND c.ion_user_id=$user_id
) > 0 THEN TRUE
ELSE FALSE
END) AS checked"
);
$this->db->from('caregiver_tasks_list ctl');
$this->db->where('ctl.status', '1');
$query=$this->db->get();
$tasks=$query->result();
$response=(object)[
'status'=>200,
'msg'=>"fetched successfully",
'data'=>[
'tasks'=>$tasks
]
];
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_tasks: ".$e->getMessage();
echo $getMsg;
}
}
function model_save_cg_visit_notes($data){
try{
$user_id=isset($data['user_id'])?intval($data['user_id']):0;
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
$notes=isset($data['notes'])?trim($data['notes']):'';
if($user_id>0 && $schedule_id>0){
$this->db->distinct();
$this->db->select('cs.caregiver_id,cs.patient_id,pr.id AS report_id');
$this->db->from('caregiver_schedule cs');
$this->db->join('caregiver c', 'cs.caregiver_id = c.id');
$this->db->join('patient_report pr', 'cs.id = pr.schedule_id AND cs.caregiver_id = pr.caregiver_id AND cs.patient_id = pr.patient_id', 'left');
$this->db->where('cs.id',$schedule_id);
$this->db->where('c.ion_user_id',$user_id);
$query=$this->db->get();
$result=$query->row();
$caregiver_id=isset($result->caregiver_id)&&$result->caregiver_id!=null?intval($result->caregiver_id):0;
$patient_id=isset($result->patient_id)&&$result->patient_id!=null?intval($result->patient_id):0;
$report_id=isset($result->report_id)&&$result->report_id!=null?intval($result->report_id):0;
if($caregiver_id>0 && $patient_id>0){
if($report_id>0){
$this->db->where('id',$report_id);
$this->db->update('patient_report',array('quick_notes'=>$notes));
if($this->db->affected_rows()>0){
$response=(object)[
'status'=>200,
'msg'=>"saved successfully"
];
}else{
$response=(object)[
'status'=>500,
'msg'=>"not saved! try again!"
];
}
}else{
$this->db->select('id');
$this->db->from('patient_report');
$this->db->where('patient_id',$patient_id);
$query2=$this->db->get();
$assessment_type=$query2->num_rows()>0?'assessment':'initial_assessment';
$report_data=[
'patient_id'=>$patient_id,
'caregiver_id'=>$caregiver_id,
'schedule_id'=>$schedule_id,
'quick_notes'=>$notes,
'assessment_type'=>$assessment_type,
'report_entry_date'=>date("Y-m-d")
];
$this->db->insert("patient_report",$report_data);
$inserted_id=$this->db->insert_id();
if($inserted_id>0){
$report_data['patient_report_id']=$inserted_id;
unset($report_data['quick_notes']);
$this->db->insert("assessment",$report_data);
$response=(object)[
'status'=>200,
'msg'=>"saved successfully"
];
}else{
$response=(object)[
'status'=>500,
'msg'=>"not saved! try again!"
];
}
}
}else{
$response=(object)[
'status'=>400,
'msg'=>"not saved! patient or caregiver does not exist"
];
}
}else{
$response=(object)[
'status'=>400,
'msg'=>"unauthorized access! user not found!"
];
}
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_get_cg_visit_notes: ".$e->getMessage();
echo $getMsg;
}
}
function model_save_cg_clock_in_out($data){
try{
$userid=isset($data['userid'])?intval($data['userid']):0;
$schedule_id=isset($data['schedule_id'])?intval($data['schedule_id']):0;
$fetchData=$this->model_get_cg_scheduling_actions([
'userid'=>$userid,
'schedule_id'=>$schedule_id
]);
$schData=$fetchData->data;
if($schData->overall_permission!==false){
$geoaddress=geo_address_by_ip();
$geoData=json_encode([
"ip"=>$geoaddress->ip,
"latitute"=>$geoaddress->latitude,
"longitude"=>$geoaddress->longitude,
"city"=>$geoaddress->city,
"zipcode"=>$geoaddress->zipcode,
"time_zone"=>$geoaddress->time_zone,
"country_flag"=>$geoaddress->country_flag
]);
if($schData->clock_in_permission!==false){
$dataClockIn=[
'caregiver_id'=>$schData->caregiver_id,
'patient_id'=>$schData->patient_id,
'schedule_id'=>$schedule_id,
'clock_in_time'=>gmdate("Y-m-d H:i:s"),
'clock_in_data'=>$geoData,
'status'=>'1',
'created_on'=>gmdate("Y-m-d H:i:s")
];
$query=$this->db->insert('caregiver_patient_clock_in_out', $dataClockIn);
if($this->db->insert_id()>0){
$response=(object)[
'status'=>200,
'msg'=>"clocked in successfully",
];
}else{
$response=(object)[
'status'=>500,
'msg'=>"error occurred while clocking in! try again",
];
}
}else if($schData->clock_out_permission!==false){
$tasks=isset($data['tasks'])?trim($data['tasks']):'';
$dataClockOut=[
'clock_out_time'=>gmdate("Y-m-d H:i:s"),
'clock_out_data'=>$geoData,
'task_list'=>'['.$tasks.']',
'clock_status'=>'1'
];
$this->db->where('schedule_id',$schedule_id);
$this->db->where('caregiver_id',$schData->caregiver_id);
$this->db->where('patient_id',$schData->patient_id);
$query=$this->db->update('caregiver_patient_clock_in_out',$dataClockOut);
if($this->db->affected_rows()>0){
$response=(object)[
'status'=>200,
'msg'=>"clocked out successfully",
];
}else{
$response=(object)[
'status'=>500,
'msg'=>"error occurred while clocking out! try again",
];
}
}else{
$response=(object)[
'status'=>400,
'msg'=>"already clocked out! could not saved.",
];
}
}else{
$response=(object)[
'status'=>400,
'msg'=>"unauthorized action! could not saved.",
];
}
if($response->status==200){
$response->data=$this->model_get_cg_scheduling_actions([
'userid'=>$userid,
'schedule_id'=>$schedule_id
])->data;
}
return $response;
}catch(Exception $e){
$getMsg="Caregiver_model - model_save_cg_clock_in_out: ".$e->getMessage();
echo $getMsg;
}
}
function get_caregiver_draft_report_list($data){
try{
$from_api=isset($data['from_api'])&&$data['from_api']!=""?trim($data['from_api']):'';
$start=isset($data['start'])?(0+(int)($data['start'])):0;
$limit=isset($data['limit'])?(0+(int)($data['limit'])):10;
$search=isset($data['search'])&&$data['search']!=""?trim($data['search']):'';
$order_column=isset($data['order_column'])?(0+(int)($data['order_column'])):0;
$order_type=isset($data['order_type'])&&$data['order_type']!=""?trim($data['order_type']):'DESC';
$filter=isset($data['filter'])&&$data['filter']!=""?trim($data['filter']):'week';
$user_id=isset($data['user_id'])&&$data['user_id']!=""?trim($data['user_id']):'';
$currentDate = time();
$start_date='';
$end_date='';
if ($filter=='week') {
$start_date = date('Y-m-d', strtotime('this week', $currentDate));
$end_date = date('Y-m-d', strtotime('this week +6 days', $currentDate));
} elseif ($filter=='month') {
$start_date = date('Y-m-01');
$end_date = date('Y-m-t');
} elseif ($filter=='year') {
$currentYear = date('Y');
$start_date = date('Y-01-01', strtotime($currentYear));
$end_date = date('Y-12-31', strtotime($currentYear));
}
$this->db->distinct();
$this->db->select(
'SQL_CALC_FOUND_ROWS
cio.id,
cio.patient_id,
cio.schedule_id,
cio.clock_in_time,
cio.clock_out_time,
cio.schedule_id,
CONCAT(cvr.fname, " ",cvr.lname) as caregiver_name,
CONCAT(pd.first_name, " ",pd.last_name) as patient_name,
mcs.name AS service_type,
pd.telephone,
pd.address,
JSON_UNQUOTE(JSON_EXTRACT(pd.address, "$.City")) AS main_city,
JSON_UNQUOTE(JSON_EXTRACT(pd.address, "$.Zipcode")) AS main_zipcode
',false
);
$this->db->from('caregiver_patient_clock_in_out cio');
$this->db->join('caregiver cvr', 'cio.caregiver_id = cvr.id', 'left');
$this->db->join('caregiver_schedule ps', 'cio.schedule_id = ps.id', 'left');
$this->db->join('patient_details pd', 'cio.patient_id = pd.id', 'left');
$this->db->join('master_cg_skills mcs', 'pd.level_of_service = mcs.id', 'left');
$this->db->where('cio.status', 1);
$this->db->where('ps.status', 1);
$this->db->where('pd.active_status', 1);
$this->db->where('ps.acceptance_status', 'Accepted');
$this->db->where('cvr.ion_user_id',$user_id);
$this->db->where('cio.clock_in_time IS NOT NULL');
if ($start_date!='' && $end_date!='') {
$this->db->where('cio.created_on >=', $start_date);
$this->db->where('cio.created_on <=', $end_date);
}
if($order_column==0){
$this->db->order_by('cio.id', $order_type);
}elseif($order_column==1) {
$this->db->order_by('pd.first_name', $order_type);
}elseif($order_column==2){
$this->db->order_by('mcs.name', $order_type);
}elseif($order_column==3){
$this->db->order_by('pd.telephone', $order_type);
}elseif($order_column==4){
$this->db->order_by('pd.address', $order_type);
}elseif($order_column==5){
$this->db->order_by('cio.clock_in_time', $order_type);
}elseif($order_column==5){
$this->db->order_by('cio.clock_out_time', $order_type);
}
if(isset($search) && $search!=''){
$this->db->group_start();
$this->db->like('cio.id', $search);
$this->db->or_like("CONCAT(pd.first_name,' ',pd.last_name)", $search);
$this->db->or_like('mcs.name', $search);
$this->db->or_like('pd.telephone', $search);
$this->db->or_like('pd.address', $search);
$this->db->or_like('cio.clock_in_time', $search);
$this->db->or_like('cio.clock_out_time', $search);
$this->db->group_end();
}
if($from_api==''){
$this->db->limit($limit,$start);
}
$query=$this->db->get();
$myPatient=$query->result_array();
$myPatientCount=$query->num_rows();
$main_query=$this->db->last_query();
$total_count=($this->db->query("SELECT FOUND_ROWS() AS total_rows"))->row()->total_rows;
$response=(object)[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>(object)[
'total_count'=>$total_count,
'count'=>$myPatientCount,
'data_list'=>$myPatient,
'main_query'=>$main_query
]
];
return $response;
}catch(Exception $e){
$getMsg="Patient_model - get_caregiver_patients_list: ".$e->getMessage();
echo $getMsg;
}
}
}