db_onedev = $this->load->database("onedev", true); } function searchcompany(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_company WHERE M_CompanyName like ? AND M_CompanyIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_city count",$this->db_onedev); exit; } $sql = " SELECT M_CompanyID as id, M_CompanyName as name FROM m_company WHERE M_CompanyName like ? AND M_CompanyIsActive = 'Y' ORDER BY M_CompanyName DESC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_company rows",$this->db_onedev); exit; } } function searchtest() { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count = 0; $orderdate = $prm['orderdate']; $mouid = $prm['mouid']; $companyid = $prm['companyid']; $sql = "SELECT count(*) as total FROM ( SELECT T_PriceT_TestID as id, T_TestName as pxname, 'TS' as type FROM t_price JOIN t_test ON T_PriceT_TestID = T_TestID JOIN m_mou ON M_MouID = T_PriceM_MouID AND M_MouStartDate <= '$orderdate' AND M_MouEndDate >= '$orderdate' WHERE T_PriceM_CompanyID = $companyid AND T_PriceM_MouID = $mouid AND T_TestName like '%{$prm['search']}%' AND T_PriceIsActive = 'Y' UNION SELECT T_PacketID as id, T_PacketName as pxname, T_PacketType as type FROM t_packet JOIN m_mou ON M_MouID = T_PacketM_MouID AND M_MouStartDate <= '$orderdate' AND M_MouEndDate >= '$orderdate' WHERE T_PacketM_CompanyID = $companyid AND T_PacketM_MouID = $mouid AND T_PacketName like '%{$prm['search']}%' AND T_PacketIsActive = 'Y' ) x"; //echo $sql; $query = $this->db_onedev->query($sql); if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_patient count",$this->db_onedev); exit; } $sql = " SELECT T_PriceT_TestID as id, T_TestName as pxname, 'TS' as type FROM t_price JOIN t_test ON T_PriceT_TestID = T_TestID JOIN m_mou ON M_MouID = T_PriceM_MouID AND M_MouStartDate <= '$orderdate' AND M_MouEndDate >= '$orderdate' WHERE T_PriceM_CompanyID = $companyid AND T_PriceM_MouID = $mouid AND T_TestName like '%{$prm['search']}%' AND T_PriceIsActive = 'Y' UNION SELECT T_PacketID as id, T_PacketName as pxname, T_PacketType as type FROM t_packet JOIN m_mou ON M_MouID = T_PacketM_MouID AND M_MouStartDate <= '$orderdate' AND M_MouEndDate >= '$orderdate' WHERE T_PacketM_CompanyID = $companyid AND T_PacketM_MouID = $mouid AND T_PacketName like '%{$prm['search']}%' AND T_PacketIsActive = 'Y' "; $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { // echo $this->db_onedev->last_query(); $this->sys_error_db("m_company rows",$this->db_onedev); exit; } } function getsampletypes(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $orderid = $prm['orderid']; $stationid = $prm['stationid']; $statusid = $prm['statusid']; $sql = "SELECT T_OrderDetailID, T_OrderDetailT_TestCode, T_OrderDetailT_TestName, T_SampleTypeID, T_SampleTypeName, T_BahanName, IF(ISNULL(T_SamplingSoID),'N',T_SamplingSoFlag) as status, IF(ISNULL(T_SamplingSoID),DATE_FORMAT(CURDATE(),'%d-%m-%Y'),DATE_FORMAT(T_SamplingSoProcessDate,'%d-%m-%Y')) as process_date, IF(ISNULL(T_SamplingSoID),DATE_FORMAT(CURTIME(),'%H:%i'),DATE_FORMAT(T_SamplingSoProcessTime,'%H:%i')) as process_time, IF(ISNULL(T_SamplingSoID) OR T_SamplingSoFlag = 'P',DATE_FORMAT(CURDATE(),'%d-%m-%Y'),DATE_FORMAT(T_SamplingSoDoneDate,'%d-%m-%Y')) as done_date, IF(ISNULL(T_SamplingSoID) OR T_SamplingSoFlag = 'P',DATE_FORMAT(CURTIME(),'%H:%i'),DATE_FORMAT(T_SamplingSoDoneTime,'%H:%i')) as done_time FROM t_orderheader JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID JOIN t_samplestation ON T_BahanT_SampleStationID = T_SampleStationID AND T_SampleStationID = {$stationid} LEFT JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoT_SampleTypeID = T_SampleTypeID AND T_SamplingSoIsActive = 'Y' WHERE T_OrderHeaderID = {$orderid} AND T_OrderHeaderIsActive = 'Y' GROUP BY T_SampleTypeID"; //echo $sql; $rows = $this->db_onedev->query($sql)->result_array(); $result = array("total" => count($rows), "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } function search() { $prm = $this->sys_input; if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $filter_company_id = $prm["filter_company"]["id"]; // echo $norm; $sql_where = ""; if($filter_company_id != 0 || $filter_company_id != '0') $sql_where = " AND Mcu_AgreementCustomerM_CompanyID = {$filter_company_id}"; //$sql_param = array(); $sql = " SELECT count(*) as total FROM mcu_preregister JOIN mcu_agreement ON Mcu_PreregisterMcu_AgreementID = Mcu_AgreementID JOIN mcu_agreement_customer ON Mcu_AgreementCustomerMcu_AgreementID = Mcu_AgreementID JOIN m_company ON Mcu_AgreementCustomerM_CompanyID = M_CompanyID JOIN m_mou ON Mcu_AgreementCustomerM_MouID = M_MouID WHERE Mcu_PreregisterIsActive = 'Y' $sql_where "; //echo $sql; $query = $this->db_onedev->query($sql); $tot_count = 0; //$tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; //$tot_page = ceil($tot_count/$number_limit); } else { $this->sys_error_db("m_doctor count", $this->db_onedev); exit; } $sql = "SELECT Mcu_PreregisterID as trx_id, DATE_FORMAT(Mcu_PreregisterDate,'%d-%m-%Y') as trx_date, Mcu_PreregisterNumbering as trx_numbering, mcu_preregister.*, Mcu_AgreementID, Mcu_AgreementNumbering, DATE_FORMAT(Mcu_AgreementDate,'%d-%m-%Y') as agreement_date, M_CompanyID, M_CompanyName, M_MouID, M_MouName, '' as tests FROM mcu_preregister JOIN mcu_agreement ON Mcu_PreregisterMcu_AgreementID = Mcu_AgreementID JOIN mcu_agreement_customer ON Mcu_AgreementCustomerMcu_AgreementID = Mcu_AgreementID JOIN m_company ON Mcu_AgreementCustomerM_CompanyID = M_CompanyID JOIN m_mou ON Mcu_AgreementCustomerM_MouID = M_MouID WHERE Mcu_PreregisterIsActive = 'Y' $sql_where limit 0,20"; //echo $sql; $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); $rows = $query->result_array(); /*if($rows){ foreach($rows as $k => $v){ $query =" SELECT mcu_preregister_details.*, Mcu_PreregisterDetailsID as trx_id, 'N' as chx, M_SexName as sexname, DATE_FORMAT(Mcu_PreregisterDetailsDOB,'%d-%m-%Y') as dob, CONCAT(IFNULL(M_TitleName,''),' ',Mcu_PreregisterDetailsPatientName) as patientname, '' as tests FROM mcu_preregister_details LEFT JOIN m_title ON Mcu_PreregisterDetailsM_TitleID = M_TitleID JOIN m_sex ON Mcu_PreregisterDetailsM_SexID = M_SexID JOIN m_religion ON Mcu_PreregisterDetailsM_ReligionID = M_ReligionID WHERE Mcu_PreregisterDetailsMcu_PreregisterID = '{$v['trx_id']}' AND Mcu_PreregisterDetailsIsActive = 'Y' "; //echo $query; $rows[$k]['details'] = $this->db_onedev->query($query)->result_array(); } }*/ //$this->_add_address($rows); $result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } function searchdetail(){ $prm = $this->sys_input; if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $headerid = $prm["headerid"]; // echo $norm; $sql_where = ""; if($prm['search'] != '') $sql_where = " AND Mcu_PreregisterDetailsPatientName LIKE CONCAT('%','{$prm['search']}','%')"; //$sql_param = array(); $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit ; $chx = "'N' as chx"; if($prm['count_px'] > 0) $chx = "'Y' as chx"; $sql = " SELECT count(*) as total FROM mcu_preregister_details LEFT JOIN m_title ON Mcu_PreregisterDetailsM_TitleID = M_TitleID JOIN m_sex ON Mcu_PreregisterDetailsM_SexID = M_SexID JOIN m_religion ON Mcu_PreregisterDetailsM_ReligionID = M_ReligionID WHERE Mcu_PreregisterDetailsMcu_PreregisterID = '{$headerid}' AND Mcu_PreregisterDetailsIsActive = 'Y' $sql_where "; //echo $sql; $query = $this->db_onedev->query($sql); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count/$number_limit); } else { $this->sys_error_db("m_doctor count", $this->db_onedev); exit; } $sql = "SELECT mcu_preregister_details.*, Mcu_PreregisterDetailsID as trx_id, $chx, M_SexName as sexname, DATE_FORMAT(Mcu_PreregisterDetailsDOB,'%d-%m-%Y') as dob, CONCAT(IFNULL(M_TitleName,''),' ',Mcu_PreregisterDetailsPatientName) as patientname, '' as tests, Mcu_PreregisterDetailsFlagAction as flagaction FROM mcu_preregister_details LEFT JOIN m_title ON Mcu_PreregisterDetailsM_TitleID = M_TitleID JOIN m_sex ON Mcu_PreregisterDetailsM_SexID = M_SexID JOIN m_religion ON Mcu_PreregisterDetailsM_ReligionID = M_ReligionID WHERE Mcu_PreregisterDetailsMcu_PreregisterID = '{$headerid}' AND Mcu_PreregisterDetailsIsActive = 'Y' $sql_where "; //echo $sql; $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); $rows = $query->result_array(); if($rows){ foreach($rows as $k => $v){ $query ="SELECT T_TestID as id, T_TestName as name, 'TS' as type FROM mcu_preregister_tests JOIN t_test ON Mcu_PreregisterTestsReffID = T_TestID AND Mcu_PreregisterTestsType = 'TS' WHERE Mcu_PreregisterTestsMcu_PreregisterDetailsID = '{$v['trx_id']}' AND Mcu_PreregisterTestsIsActive = 'Y' UNION SELECT T_PacketID as id, T_PacketName as name, T_PacketType as type FROM mcu_preregister_tests JOIN t_packet ON Mcu_PreregisterTestsReffID = T_PacketID AND Mcu_PreregisterTestsType = T_PacketType WHERE Mcu_PreregisterTestsMcu_PreregisterDetailsID = '{$v['trx_id']}' AND Mcu_PreregisterTestsIsActive = 'Y' "; //echo $query; $rows[$k]['tests'] = $this->db_onedev->query($query)->result_array(); } } //$this->_add_address($rows); $result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } function checkpatient(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $tot_count = 1; $rows = []; $dob = date('Y-m-d',strtotime($prm['dob'])); $query =" SELECT m_patient.*, DATE_FORMAT(M_PatientDOB,'%d-%m-%Y') as patient_dob, M_TitleName, m_sexname, M_ReligionName, IFNULL(M_CompanyStaffPositionID,0) as M_CompanyStaffPositionID, M_CompanyStaffPositionName FROM m_patient LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID LEFT JOIN m_sex ON M_PatientM_SexID = M_SexID LEFT JOIN m_religion ON M_PatientM_ReligionID = M_ReligionID LEFT JOIN m_companystaffposition ON M_PatientM_CompanyStaffPositionID = M_CompanyStaffPositionID WHERE M_PatientName = '{$prm['patientname']}' AND M_PatientDOB = '{$dob}' AND M_PatientIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array("total" => $tot_count, "records" => $rows, "sql"=> $this->db_onedev->last_query()); $this->sys_ok($result); exit; } function titsexreg(){ //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT * FROM m_title WHERE M_TitleIsActive = 'Y' "; //echo $query; $rows['titles'] = $this->db_onedev->query($query)->result_array(); $query =" SELECT * FROM m_sex WHERE M_SexIsActive = 'Y' "; //echo $query; $rows['sexs'] = $this->db_onedev->query($query)->result_array(); $query =" SELECT * FROM m_religion WHERE M_ReligionIsActive = 'Y' "; //echo $query; $rows['religions'] = $this->db_onedev->query($query)->result_array(); $query =" SELECT M_CompanyStaffPositionID as id, M_CompanyStaffPositionName as name FROM m_companystaffposition WHERE M_CompanyStaffPositionIsActive = 'Y' "; //echo $query; $rows['staffpositions'] = $this->db_onedev->query($query)->result_array(); $rows['staffpositions'][] = array('id'=>'0','name'=>'Semua Jabatan'); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function getstationstatus(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT T_SampleStationID as id, T_SampleStationName as name FROM t_samplestation WHERE T_SampleStationIsActive = 'Y' "; //echo $query; $rows['stations'] = $this->db_onedev->query($query)->result_array(); $rows['statuses'] = array(array('id'=>0,'name'=>'New')); $query =" SELECT T_SamplingQueueStatusID as id, T_SamplingQueueStatusName as name FROM t_sampling_queue_status WHERE T_SamplingCallStatusIsActive = 'Y' "; //echo $query; $statuses = $this->db_onedev->query($query)->result_array(); //print_r($statuses); foreach($statuses as $k=>$v){ array_push($rows['statuses'],$v); } $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function getagreementtype(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query =" SELECT Mcu_AgreementTypeID as id, Mcu_AgreementTypeName as name FROM mcu_agreementtype WHERE Mcu_AgreementTypeIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function getmou(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $companyid = $prm['company']['id']; $query =" SELECT M_MouID as id, M_MouName as name FROM m_mou WHERE M_MouM_CompanyID = $companyid AND M_MouIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function updateaction(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $patient = $prm['patient']; $userid = $this->sys_user["M_UserID"]; $patientid = $patient['Mcu_PreregisterDetailsM_PatientID']; $dob = date('Y-m-d',strtotime($patient['Mcu_PreregisterDetailsDOB'])); if($patient['Mcu_PreregisterDetailsM_PatientID'] == 0 || $patient['Mcu_PreregisterDetailsM_PatientID'] == '0' ){ $query = " INSERT INTO m_patient ( M_PatientName, M_PatientM_TitleID, M_PatientM_SexID, M_PatientM_ReligionID, M_PatientDOB, M_PatientHP, M_PatientPhone, M_PatientEmail, M_PatientM_CompanyStaffPositionID, M_PatientCreated, M_PatientUserID )VALUES( '{$patient['Mcu_PreregisterDetailsPatientName']}', '{$patient['Mcu_PreregisterDetailsM_TitleID']}', '{$patient['Mcu_PreregisterDetailsM_SexID']}', '{$patient['Mcu_PreregisterDetailsM_ReligionID']}', '{$dob}', '{$patient['Mcu_PreregisterDetailsHP']}', '{$patient['Mcu_PreregisterDetailsPhone']}', '{$patient['Mcu_PreregisterDetailsEmail']}', '{$patient['Mcu_PreregisterDetailsM_CompanyStaffPositionID']}', 'NOW()', '{$userid}' )"; $this->db_onedev->query($query); //echo $query; $patientid = $this->db_onedev->insert_id(); $sql = "SELECT m_company.* FROM mcu_preregister_details JOIN mcu_preregister ON Mcu_PreregisterDetailsMcu_PreregisterID = Mcu_PreregisterID JOIN mcu_agreement_customer ON Mcu_AgreementCustomerMcu_AgreementID = Mcu_PreregisterMcu_AgreementID JOIN m_company ON Mcu_AgreementCustomerM_CompanyID = M_CompanyID WHERE Mcu_PreregisterDetailsID = {$patient['trx_id']}"; //echo $sql; $company = $this->db_onedev->query($sql)->row(); $sql = "INSERT INTO m_patientaddress ( M_PatientAddressM_PatientID, M_PatientAddressNote, M_PatientAddressDescription, M_PatientAddressM_KelurahanID, M_PatientAddressCreated ) VALUES( {$patientid}, 'Utama', '{$company->M_CompanyAddress}', '{$company->M_CompanyM_KelurahanID}', NOW() )"; $this->db_onedev->query($sql); } else{ $sql = "UPDATE m_patient SET M_PatientName = '{$patient['Mcu_PreregisterDetailsPatientName']}', M_PatientM_TitleID = '{$patient['Mcu_PreregisterDetailsM_TitleID']}', M_PatientM_SexID = '{$patient['Mcu_PreregisterDetailsM_SexID']}', M_PatientM_ReligionID = '{$patient['Mcu_PreregisterDetailsM_ReligionID']}', M_PatientDOB = '{$dob}', M_PatientHP = '{$patient['Mcu_PreregisterDetailsHP']}', M_PatientPhone = '{$patient['Mcu_PreregisterDetailsPhone']}', M_PatientEmail = '{$patient['Mcu_PreregisterDetailsEmail']}', M_PatientM_CompanyStaffPositionID = '{$patient['Mcu_PreregisterDetailsM_CompanyStaffPositionID']}', M_PatientUserID = '{$userid}' WHERE M_PatientID = {$patientid} "; $this->db_onedev->query($sql); } $query =" UPDATE mcu_preregister_details SET Mcu_PreregisterDetailsFlagAction = 'N', Mcu_PreregisterDetailsByUserID = 0 WHERE Mcu_PreregisterDetailsByUserID = '{$userid}' "; //echo $query; $this->db_onedev->query($query); $query =" UPDATE mcu_preregister_details SET Mcu_PreregisterDetailsFlagAction = 'R', Mcu_PreregisterDetailsM_PatientID = '{$patientid}', Mcu_PreregisterDetailsByUserID = '{$userid}' WHERE Mcu_PreregisterDetailsID = {$patient['trx_id']} "; //echo $query; $this->db_onedev->query($query); $result = array( "total" => 1, "records" => $prm, ); $this->sys_ok($result); exit; } function getagreement(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $companyid = $prm['company']['id']; $query =" SELECT Mcu_AgreementID as id, Mcu_AgreementNumbering as name FROM mcu_agreement JOIN mcu_agreement_customer ON Mcu_AgreementCustomerMcu_AgreementID = Mcu_AgreementID AND Mcu_AgreementCustomerM_CompanyID = $companyid WHERE Mcu_AgreementIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function savepreregister(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $header_id = $prm['trx_id']; $numbering = ''; if($header_id == '0' || $header_id == 0){ $numbering = $this->db_onedev->query("SELECT fn_numbering('PREREG') as numbering")->row()->numbering; $query = "INSERT INTO mcu_preregister( Mcu_PreregisterNumbering, Mcu_PreregisterDate, Mcu_PreregisterMcu_AgreementID, Mcu_PreregisterUserID, Mcu_PreregisterCreated ) VALUES( '{$numbering}', '{$prm['trx_date']}', '{$prm['agreement']['id']}', '{$userid}', NOW() )"; $r = $this->db_onedev->query($query); $header_id = $this->db_onedev->insert_id(); } else{ $numbering = $this->db_onedev->query("SELECT Mcu_PreregisterNumbering as numbering FROM mcu_preregister WHERE Mcu_AgreementID = '{$header_id}'")->row()->numbering; } $rows['trx_id'] = $header_id; $rows['numbering'] = $numbering; $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function savepatient(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $header_id = $prm['header_id']; $trx_patient_id = $prm['trx_patient_id']; $dob = date('Y-m-d',strtotime($prm['dob'])); $jabatan = $prm['staff_position']['id']; if($prm['new_staff_position'] != ''){ $sql = "INSERT INTO m_companystaffposition ( M_CompanyStaffPositionName, M_CompanyStaffPositionUserID, M_CompanyStaffPositionCreated ) VALUES( '{$prm['new_staff_position']}', {$userid}, NOW() )"; $this->db_onedev->query($sql); $jabatan = $this->db_onedev->insert_id(); } if($trx_patient_id == '0' || $trx_patient_id == 0){ //$numbering = $this->db_onedev->query("SELECT fn_numbering('PREREG') as numbering")->row()->numbering; $query = "INSERT INTO mcu_preregister_details( Mcu_PreregisterDetailsMcu_PreregisterID, Mcu_PreregisterDetailsM_PatientID, Mcu_PreregisterDetailsM_TitleID, Mcu_PreregisterDetailsPatientName, Mcu_PreregisterDetailsM_SexID, Mcu_PreregisterDetailsDOB, Mcu_PreregisterDetailsM_ReligionID, Mcu_PreregisterDetailsPhone, Mcu_PreregisterDetailsHP, Mcu_PreregisterDetailsEmail, Mcu_PreregisterDetailsM_CompanyStaffPositionID, Mcu_PreregisterDetailsUserID, Mcu_PreregisterDetailsCreated ) VALUES( '{$header_id}', '{$prm['patientid']}', '{$prm['titleid']}', '{$prm['patientname']}', '{$prm['sexid']}', '{$dob}', '{$prm['religionid']}', '{$prm['phone']}', '{$prm['hp']}', '{$prm['email']}', {$jabatan}, '{$userid}', NOW() )"; //echo $query; $r = $this->db_onedev->query($query); //$new_id = $this->db_onedev->insert_id(); } if($prm['patientid'] !== '0' || $prm['patientid'] !== 0){ $sql = "UPDATE m_patient SET M_PatientName = '{$prm['patientname']}', M_PatientM_TitleID = '{$prm['titleid']}', M_PatientM_SexID = '{$prm['sexid']}', M_PatientM_ReligionID = '{$prm['religionid']}', M_PatientDOB = '{$dob}', M_PatientHP = '{$prm['hp']}', M_PatientPhone = '{$prm['phone']}', M_PatientEmail = '{$prm['email']}', M_PatientM_CompanyStaffPositionID = '{$jabatan}', M_PatientUserID = '{$userid}' WHERE M_PatientID = {$prm['patientid']} "; //echo $sql; $this->db_onedev->query($sql); } $rows['trx_id'] = $header_id; $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function savepatienttest(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $header_id = $prm['header_id']; $details = $prm['details']; //print_r($details); if($details){ foreach($details as $k => $v){ //print_r($v); $trx_id = $v['trx_id']; $tests = $v['tests']; //echo $trx_id; //print_r($test); if($tests){ $sql = "UPDATE mcu_preregister_tests SET Mcu_PreregisterTestsIsActive = 'N' WHERE Mcu_PreregisterTestsMcu_PreregisterDetailsID = '{$trx_id}' "; $this->db_onedev->query($sql); //echo $sql; foreach($tests as $key => $value){ $type = $value['type']; $sql = "INSERT INTO mcu_preregister_tests ( Mcu_PreregisterTestsMcu_PreregisterDetailsID, Mcu_PreregisterTestsReffID, Mcu_PreregisterTestsType, Mcu_PreregisterTestsUserID, Mcu_PreregisterTestsCreated ) VALUES ( {$trx_id}, {$value['id']}, '{$type}', {$userid}, NOW() ) ON DUPLICATE KEY UPDATE Mcu_PreregisterTestsReffID = {$value['id']}, Mcu_PreregisterTestsType = '{$type}', Mcu_PreregisterTestsIsActive = 'Y', Mcu_PreregisterTestsUserID = '{$userid}';"; //echo $sql; $save = $this->db_onedev->query($sql); } } } } $row = array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function deletepatient(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $header_id = $prm['header_id']; $patient = $prm['patient']; $sql = "UPDATE mcu_preregister_details SET Mcu_PreregisterDetailsIsActive = 'N' WHERE Mcu_PreregisterDetailsID = '{$patient['trx_id']}'"; $this->db_onedev->query($sql); //echo $sql; $row = array(); $result = array( "total" => count($rows) , "records" => $rows, ); $this->sys_ok($result); exit; } function doaction(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $next_status = $prm['statusnextid']; if($prm['act'] == 'samplingprocess'){ $sql = "INSERT INTO t_samplingso ( T_SamplingSoT_OrderHeaderID, T_SamplingSoT_SampleTypeID, T_SamplingSoProcessDate, T_SamplingSoProcessTime, T_SamplingSoProcessUserID, T_SamplingSoCreated, T_SamplingSoUserID ) VALUES( {$prm['id']}, {$prm['sample']['T_SampleTypeID']}, CURDATE(), CURTIME(), {$userid}, NOW(), {$userid} ) ON DUPLICATE KEY UPDATE T_SamplingSoProcessDate = CURDATE(), T_SamplingSoProcessTime = CURTIME(), T_SamplingSoFlag = 'P', T_SamplingSoIsActive = 'Y', T_SamplingSoProcessUserID = {$userid}, T_SamplingSoUserID = {$userid}"; $this->db_onedev->query($sql); } if($prm['act'] == 'samplingdone'){ $sql = "INSERT INTO t_samplingso ( T_SamplingSoT_OrderHeaderID, T_SamplingSoT_SampleTypeID, T_SamplingSoDoneDate, T_SamplingSoDoneTime, T_SamplingSoDoneUserID, T_SamplingSoCreated, T_SamplingSoUserID ) VALUES( {$prm['id']}, {$prm['sample']['T_SampleTypeID']}, CURDATE(), CURTIME(), {$userid}, NOW(), {$userid} ) ON DUPLICATE KEY UPDATE T_SamplingSoDoneDate = CURDATE(), T_SamplingSoDoneTime = CURTIME(), T_SamplingSoFlag = 'D', T_SamplingSoIsActive = 'Y', T_SamplingSoDoneUserID = {$userid}, T_SamplingSoUserID = {$userid}"; $this->db_onedev->query($sql); $sql = "SELECT count(*) as xcount FROM (SELECT * FROM t_orderheader JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID JOIN t_samplestation ON T_BahanT_SampleStationID = T_SampleStationID LEFT JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoT_SampleTypeID = T_SampleTypeID AND T_SamplingSoIsActive = 'Y' WHERE T_OrderHeaderID = {$prm['id']} AND T_SamplingSoT_SampleTypeID <> {$prm['sample']['T_SampleTypeID']} AND (ISNULL(T_SamplingSoID) OR T_SamplingSoFlag = 'P') AND T_OrderHeaderIsActive = 'Y' GROUP BY T_SampleTypeID ) xx"; //echo $sql; $xcount = $this->db_onedev->query($sql)->row()->xcount; if($xcount == 0){ $next_status = 5; } } if($prm['act'] !== 'samplingprocess'){ $dt_json = json_encode(array('T_SampleStationID'=>$prm['stationid'],'T_OrderHeaderID'=>$prm['id'],'T_SamplingQueueStatusID'=>$next_status)); $query = "INSERT INTO one_log.log_sampling_queue (Log_SamplingQueueDate,Log_SamplingQueueJSON,Log_SamplingQueueUserID) VALUES(NOW(),'{$dt_json}',{$userid})"; //echo $query; $rows = $this->db_onedev->query($query); $sql = "SELECT * FROM t_sampling_queue_last_status WHERE T_SamplingQueueLastStatusT_SampleStationID = {$prm['stationid']} AND T_SamplingQueueLastStatusT_OrderHeaderID = {$prm['id']} AND T_SamplingQueueLastStatusIsActive = 'Y'"; $data_last = $this->db_onedev->query($sql)->row(); $query = "INSERT INTO t_sampling_queue_last_status ( T_SamplingQueueLastStatusT_SampleStationID, T_SamplingQueueLastStatusT_OrderHeaderID, T_SamplingQueueLastStatusT_SamplingQueueStatusID, T_SamplingQueueLastStatusUserID) VALUES( {$prm['stationid']}, {$prm['id']}, {$next_status}, {$userid}) ON DUPLICATE KEY UPDATE T_SamplingQueueLastStatusT_SamplingQueueStatusID = {$next_status}"; //echo $query; $rows = $this->db_onedev->query($query); } $result = array( "total" => 1 , "records" => array('status'=>'OK') ); $this->sys_ok($result); exit; } }