diff --git a/application/controllers/mockup/mcuoffline/Preregisterappcponev3.php b/application/controllers/mockup/mcuoffline/Preregisterappcponev3.php index 09adf57..c85cfe1 100644 --- a/application/controllers/mockup/mcuoffline/Preregisterappcponev3.php +++ b/application/controllers/mockup/mcuoffline/Preregisterappcponev3.php @@ -1,14 +1,14 @@ -isLogin) { - // $this->sys_error("Invalid Token"); - // exit; - // } - $sql = "SELECT * - FROM mgm_mcu - WHERE Mgm_McuIsActive = 'Y' AND ( CURDATE() BETWEEN Mgm_McuStartDate AND Mgm_McuEndDate ) - ORDER BY Mgm_McuStartDate ASC, Mgm_McuEndDate ASC"; - $qry = $this->db_onedev->query($sql, []); - $last_qry = $this->db_onedev->last_query(); - if (!$qry) { - $message = $this->db_onedev->error(); - $message['last_qry'] = $last_qry; - $this->sys_error($message); - exit; - } - $data = $qry->result_array(); - $result = [ - "records" => $data, - ]; - $this->sys_ok($result); - } catch (Exception $exc) { - $message = $exc->getMessage(); - $this->sys_error($message); - } - } - function search_patient_listing() - { - $prm = $this->sys_input; - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - - $search = $prm["search"]; - $setup = $prm["setup"]; - $status = $prm["status"]; - $sqlStatus = ""; - if ($status == 'Y') { - $sqlStatus = "AND Mcu_PreregisterPatientsIsRegistered = 'Y'"; - } else if ($status == 'N') { - $sqlStatus = "AND Mcu_PreregisterPatientsIsRegistered = 'N'"; - } - $q = [ - 'name' => '', - 'hp' => '', - 'dob' => '', - 'address' => '' - ]; - - - - $sql_where = ""; - if ($prm['search'] != '') { - $e = explode('+', $prm['search']); - if (count($e) == 1) { - $sql_where .= "AND Mcu_PreregisterPatientsPatientName like CONCAT('%','{$e[0]}','%')"; - } - if (count($e) == 2) { - $sql_where .= "AND ( Mcu_PreregisterPatientsPatientName like CONCAT('%','{$e[0]}','%') AND Mcu_PreregisterPatientsNIP like CONCAT('%','{$e[1]}','%')) "; - } - } - // if ($search != "") { - // } - - $number_limit = 10; - $number_offset = ($prm['current_page'] - 1) * $number_limit; - - $sql = " SELECT count(*) as total - FROM mcu_preregister_patients - LEFT JOIN m_title ON Mcu_PreregisterPatientsM_TitleID = M_TitleID - LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID - WHERE - Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = {$setup['Mgm_McuID']} - $sql_where - $sqlStatus - - - "; - //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 * - , '' as agreement, - '' as packets, - '' as tests, - CONCAT(IF(ISNULL(M_TitleName),'',CONCAT(M_TitleName,'.')), - ' ', - IFNULL(Mcu_PreregisterPatientsPatientPrefix,''), - ' ', - Mcu_PreregisterPatientsPatientName, - ' ', - IFNULL(Mcu_PreregisterPatientsPatientSuffix,'')) as patient_fullname, - DATE_FORMAT(Mcu_PreregisterPatientsDOB,'%d-%m-%Y') as dob, - DATE_FORMAT(Mcu_PreregisterPatientsDOB,'%d-%m-%Y') as Mcu_PreregisterPatientsDOB - FROM mcu_preregister_patients - LEFT JOIN m_title ON Mcu_PreregisterPatientsM_TitleID = M_TitleID - LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID - WHERE - Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = {$setup['Mgm_McuID']} - $sql_where - $sqlStatus - ORDER BY T_OrderHeaderDate DESC, Mcu_PreregisterPatientsIsRegistered ASC, Mcu_PreregisterPatientsPatientName ASC - limit $number_limit offset $number_offset"; - - $query = $this->db_onedev->query($sql); - //echo $sql - if (!$query) { - $message = $this->db_onedev->error(); - $message['last_qry'] = - $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - }; - $rows = $query->result_array(); - if ($rows) { - foreach ($rows as $k => $v) { - $rows[$k]['packets'] = array(); - $rows[$k]['tests'] = array(); - $join_test = ''; - $filter_paket = "AND T_PacketSasCode IN ('')"; - $filter_test = "AND T_TestSasCode IN ('')"; - if ($v['Mcu_PreregisterPatientsOrders'] != '') { - $xjoin_tests = explode(',', $v['Mcu_PreregisterPatientsOrders']); - //print_r($xjoin_tests); - if ($xjoin_tests) { - foreach ($xjoin_tests as $kjt => $vjt) { - if ($join_test != '') - $join_test .= ","; - - $join_test .= "'{$vjt}'"; - } - } - //echo $join_test; - $filter_paket = "AND T_PacketSasCode IN ({$join_test})"; - $filter_test = "AND T_TestSasCode IN ({$join_test}) "; - } - $sql = "SELECT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test - FROM ss_price_mou - JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' - JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID - AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} - WHERE - T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'Y' $filter_paket"; - //echo $sql; - $rows[$k]['packets'] = $this->db_onedev->query($sql)->result_array(); - if ($rows[$k]['packets']) { - foreach ($rows[$k]['packets'] as $kp => $vp) { - $rows[$k]['packets'][$kp]['nat_test'] = json_decode($vp['nat_test']); - } - } - - $sql = "SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test - FROM ss_price_mou - JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' - WHERE - T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'N' AND - T_PriceIsCito = 'N' $filter_test"; - //echo $sql; - $rows[$k]['tests'] = $this->db_onedev->query($sql)->result_array(); - if ($rows[$k]['tests']) { - foreach ($rows[$k]['tests'] as $kp => $vp) { - $rows[$k]['tests'][$kp]['nat_test'] = json_decode($vp['nat_test']); - } - } - } - $pids = array(); - $sql = "SELECT Mcu_PreregisterPatientsM_PatientID as id - FROM mcu_preregister_patients - WHERE - Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = '{$setup['Mgm_McuID']}'"; - - $rows_all = $this->db_onedev->query($sql)->result_array(); - //echo $sql; - if ($rows_all) { - foreach ($rows_all as $ka => $va) { - array_push($pids, $va['id']); - } - } - } - //$this->_add_address($rows); - $result = array("total" => $tot_page, "total_data" => $tot_count, "records" => $rows, "pids" => $pids, "sql" => $this->db_onedev->last_query()); - $this->sys_ok($result); - exit; - } - function search_patient_table() - { - $prm = $this->sys_input; - $setup = $prm['setup']; - - $max_rst = 100; - $tot_count = 0; - $number_limit = 10; - $number_offset = (!isset($prm['current_page']) ? 1 : $prm['current_page'] - 1) * $number_limit; - if (isset($prm['reload'])) { - $number_limit = intval($prm['current_page']) * 10; - $number_offset = 0; - } - - $q = [ - 'name' => '', - 'hp' => '', - 'dob' => '', - 'address' => '' - ]; - - - - if ($prm['search'] != '') { - $e = explode('+', $prm['search']); - if (isset($e[0])) - $q['name'] = "AND M_PatientName LIKE '%{$e[0]}%'"; - if (isset($e[1])) - $q['dob'] = "AND ((DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') LIKE '%{$e[1]}%' and M_PatientDOB IS NOT NULL) OR (M_PatientDOB IS NULL AND '{$e[1]}' = ''))"; - if (isset($e[2])) - $q['nik'] = "AND M_PatientNIP LIKE '%{$e[2]}%'"; - } - - - $sql = "SELECT m_patient.*, - 'N' divider, - concat(IFNULL(M_TitleName,''),' ',IFNULL(M_PatientPrefix,''),' ',M_PatientName,' ',IFNULL(M_PatientSuffix,'')) M_PatientName, - M_PatientName M_PatientRealName, M_TitleID, M_TitleName, M_PatientGender, - DATE_FORMAT(M_PatientDOB,'%d-%m-%Y') as dob_ina, - IFNULL(M_PatientReligionCode, '-') M_PatientReligionCode, - M_PatientNoReg as Mcu_PreregisterPatientsPID, - M_PatientIdentifierValue as Mcu_PreregisterPatientsKTP, - M_PatientID as Mcu_PreregisterPatientsM_PatientID, - M_TitleID as Mcu_PreregisterPatientsM_TitleID, - M_PatientName as Mcu_PreregisterDetailsPatientName, - M_PatientGender as Mcu_PreregisterPatientsPatientName, - M_PatientDOB as Mcu_PreregisterPatientsDOB, - IFNULL(M_PatientReligionCode,0) as Mcu_PreregisterPatientsReligion, - M_PatientEmail as Mcu_PreregisterPatientsEmail, - M_PatientHP as Mcu_PreregisterPatientsHp, - M_PatientPosisi as Mcu_PreregisterPatientsPosisi, - M_PatientDivisi as Mcu_PreregisterPatientsDivisi, - M_PatientJob as Mcu_PreregisterPatientsJob, - M_PatientDepartement as Mcu_PreregisterPatientsDepartment - from - m_patient - LEFT join m_title on M_PatientM_TitleID = M_TitleID - where M_PatientIsActive = 'Y' - AND M_PatientRegisteredByCorporateID = {$setup['Mgm_McuCorporateID']} - {$q['name']} - {$q['dob']} - {$q['nik']} - group by M_PatientID - limit $number_limit offset $number_offset"; - //echo $sql; - $query = $this->db_onedev->query($sql); - $qryListing = $this->db_onedev->last_query(); - - if ($query) { - $rows = $query->result_array(); - if ($rows) { - $per_divider = 1; - foreach ($rows as $k => $v) { - if ($per_divider == 10) { - $rows[$k]['divider'] = 'Y'; - } - $per_divider = $per_divider + 1; - if ($per_divider > 10) - $per_divider = 1; - } - } - $pids = array(); - $sql = "SELECT Mcu_PreregisterPatientsM_PatientID as id - FROM mcu_preregister_patients - WHERE - Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = '{$setup['Mgm_McuID']}'"; - - $rows_all = $this->db_onedev->query($sql)->result_array(); - //echo $sql; - if ($rows_all) { - foreach ($rows_all as $ka => $va) { - array_push($pids, $va['id']); - } - } - - $result = array("total" => "", "records" => $rows, "pids" => $pids, "sql" => $this->db_onedev->last_query(), "qrylisting" => $qryListing); - $this->sys_ok($result); - } else { - $this->sys_error_db("m_patient rows", $this->db_onedev); - exit; - } - } - function savenewform() - { - // $this->db_onedev->trans_begin(); - $this->db_onedev->trans_begin(); - // $this->db_onedev->trans_rollback(); - // $this->db_onedev->trans_commit(); - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $userid = $this->sys_user["M_UserID"]; - $prm = $this->sys_input; - //print_r($prm); - $setup = $prm['setup']; - $sql = "SELECT CorporateCode FROM corporate WHERE CorporateID = '{$setup['Mgm_McuCorporateID']}'"; - $qry = $this->db_onedev->query($sql); - if (!$qry) { - $message = $this->db_onedev->error(); - $this->db_onedev->trans_rollback(); - $this->sys_error($message); - exit; - } - $corporateCode = $qry->row_array()['CorporateCode']; - $v = $prm; - - $name = str_replace("'", "\\'", $v['M_PatientRealName']); - $nameEscape = $this->db_onedev->escape($v['M_PatientRealName']); - // print_r($name); - $pdob = date('Y-m-d', strtotime($v['M_PatientDOB'])); - - // $data = array( - // "Mcu_PreregisterPatientsMgm_McuID" => $setup['Mgm_McuID'], - // "Mcu_PreregisterPatientsPID" => $v['Mcu_PreregisterPatientsPID'], - // "Mcu_PreregisterPatientsM_PatientID" => $v['M_PatientID'], - // "Mcu_PreregisterPatientsKTP" => $v['Mcu_PreregisterPatientsKTP'], - // "Mcu_PreregisterPatientsPatientPrefix" => $v['M_PatientPrefix'], - // "Mcu_PreregisterPatientsPatientName" => $name, - // "Mcu_PreregisterPatientsPatientSuffix" => $v['M_PatientSuffix'], - // "Mcu_PreregisterPatientsGender" => $v['M_PatientGender'], - // "Mcu_PreregisterPatientsDOB" => $pdob, - // "Mcu_PreregisterPatientsReligion" => $v['M_PatientReligionCode'], - // "Mcu_PreregisterPatientsJob" => $v['M_PatientJob'], - // "Mcu_PreregisterPatientsEmail" => $v['M_PatientEmail'], - // "Mcu_PreregisterPatientsHp" => $v['M_PatientHp'], - // "Mcu_PreregisterPatientsPosisi" => $v['M_PatientPosisi'], - // "Mcu_PreregisterPatientsDivisi" => $v['M_PatientDivisi'], - // "Mcu_PreregisterPatientsLocation" => $v['M_PatientLocation'], - // "Mcu_PreregisterPatientsCreated" => date('Y-m-d H:i:s'), - // "Mcu_PreregisterPatientsUserID" => $userid, - // "Mcu_PreregisterPatientsM_TitleID" => $v['Mcu_PreregisterPatientsM_TitleID'], - // "Mcu_PreregisterPatientsCorporateCode" => $corporateCode, - // "Mcu_PreregisterPatientsDepartment" => $v['M_PatientDepartement'], - // "Mcu_PreregisterPatientsNIP" => $v['M_PatientNIP'] - // ); - - // $rows = $this->db_onedev->insert( - // "mcu_preregister_patients", - // $data - // ); - // $setup['Mgm_McuID'], - // $v['Mcu_PreregisterPatientsPID'], - // $v['M_PatientID'], - // $v['Mcu_PreregisterPatientsKTP'], - // $v['M_PatientPrefix'], - // $this->db_onedev->escape_str($name), - // $v['M_PatientSuffix'], - // $v['M_PatientGender'], - // $pdob, - // $v['M_PatientReligionCode'], - // $v['M_PatientJob'], - // $v['M_PatientEmail'], - // $v['M_PatientHp'], - // $v['M_PatientPosisi'], - // $v['M_PatientDivisi'], - // $v['M_PatientLocation'], - // $userid, - // $v['Mcu_PreregisterPatientsM_TitleID'], - // $corporateCode, - // $v['M_PatientDepartement'], - // $v['M_PatientNIP'] - $query = "INSERT INTO mcu_preregister_patients ( - Mcu_PreregisterPatientsMgm_McuID, - Mcu_PreregisterPatientsPID, - Mcu_PreregisterPatientsM_PatientID, - Mcu_PreregisterPatientsKTP, - Mcu_PreregisterPatientsPatientPrefix, - Mcu_PreregisterPatientsPatientName, - Mcu_PreregisterPatientsPatientSuffix, - Mcu_PreregisterPatientsGender, - Mcu_PreregisterPatientsDOB, - Mcu_PreregisterPatientsReligion, - Mcu_PreregisterPatientsJob, - Mcu_PreregisterPatientsEmail, - Mcu_PreregisterPatientsHp, - Mcu_PreregisterPatientsPosisi, - Mcu_PreregisterPatientsDivisi, - Mcu_PreregisterPatientsLocation, - Mcu_PreregisterPatientsCreated, - Mcu_PreregisterPatientsUserID, - Mcu_PreregisterPatientsM_TitleID, - Mcu_PreregisterPatientsCorporateCode, - Mcu_PreregisterPatientsDepartment, - Mcu_PreregisterPatientsNIP - ) - VALUES( - ?,?,?,?,?,?,?, - ?, - ?, - ?, - ?, - ?, - ?, - ?, - ?, - ?, - NOW(), - ?, - ?, - ?, - ?, - ? - )"; - //echo $query; - $rows = $this->db_onedev->query($query, [ - $setup['Mgm_McuID'], - $v['Mcu_PreregisterPatientsPID'], - $v['M_PatientID'], - $v['Mcu_PreregisterPatientsKTP'], - $v['M_PatientPrefix'], - $v['M_PatientRealName'], - $v['M_PatientSuffix'], - $v['M_PatientGender'], - $pdob, - $v['M_PatientReligionCode'], - $v['M_PatientJob'], - $v['M_PatientEmail'], - $v['M_PatientHp'], - $v['M_PatientPosisi'], - $v['M_PatientDivisi'], - $v['M_PatientLocation'], - $userid, - $v['Mcu_PreregisterPatientsM_TitleID'], - $corporateCode, - $v['M_PatientDepartement'], - $v['M_PatientNIP'] - ]); - if (!$rows) { - $message = $this->db_onedev->error(); - $this->db_onedev->trans_rollback(); - $this->sys_error($message); - exit; - } + public function getsetup() + { + try { + // if (!$this->isLogin) { + // $this->sys_error("Invalid Token"); + // exit; + // } + $sql = "SELECT * + FROM mgm_mcu + WHERE Mgm_McuIsActive = 'Y' AND ( CURDATE() BETWEEN Mgm_McuStartDate AND Mgm_McuEndDate ) + ORDER BY Mgm_McuStartDate ASC, Mgm_McuEndDate ASC"; + $qry = $this->db_onedev->query($sql, []); + $last_qry = $this->db_onedev->last_query(); + if (!$qry) { + $message = $this->db_onedev->error(); + $message['last_qry'] = $last_qry; + $this->sys_error($message); + exit; + } + $data = $qry->result_array(); + $result = [ + "records" => $data, + ]; + $this->sys_ok($result); + } catch (Exception $exc) { + $message = $exc->getMessage(); + $this->sys_error($message); + } + } + function search_patient_listing() + { + $prm = $this->sys_input; + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + + $search = $prm["search"]; + $setup = $prm["setup"]; + $status = $prm["status"]; + $sqlStatus = ""; + if ($status == 'Y') { + $sqlStatus = "AND Mcu_PreregisterPatientsIsRegistered = 'Y'"; + } else if ($status == 'N') { + $sqlStatus = "AND Mcu_PreregisterPatientsIsRegistered = 'N'"; + } + $q = [ + 'name' => '', + 'hp' => '', + 'dob' => '', + 'address' => '' + ]; + + + + $sql_where = ""; + if ($prm['search'] != '') { + $e = explode('+', $prm['search']); + if (count($e) == 1) { + $sql_where .= "AND Mcu_PreregisterPatientsPatientName like CONCAT('%','{$e[0]}','%')"; + } + if (count($e) == 2) { + $sql_where .= "AND ( Mcu_PreregisterPatientsPatientName like CONCAT('%','{$e[0]}','%') AND Mcu_PreregisterPatientsNIP like CONCAT('%','{$e[1]}','%')) "; + } + } + // if ($search != "") { + // } + + $number_limit = 10; + $number_offset = ($prm['current_page'] - 1) * $number_limit; + + $sql = " SELECT count(*) as total + FROM mcu_preregister_patients + LEFT JOIN m_title ON Mcu_PreregisterPatientsM_TitleID = M_TitleID + LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID + WHERE + Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = {$setup['Mgm_McuID']} + $sql_where + $sqlStatus + + + "; + //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 * + , '' as agreement, + '' as packets, + '' as tests, + CONCAT(IF(ISNULL(M_TitleName),'',CONCAT(M_TitleName,'.')), + ' ', + IFNULL(Mcu_PreregisterPatientsPatientPrefix,''), + ' ', + Mcu_PreregisterPatientsPatientName, + ' ', + IFNULL(Mcu_PreregisterPatientsPatientSuffix,'')) as patient_fullname, + DATE_FORMAT(Mcu_PreregisterPatientsDOB,'%d-%m-%Y') as dob, + DATE_FORMAT(Mcu_PreregisterPatientsDOB,'%d-%m-%Y') as Mcu_PreregisterPatientsDOB + FROM mcu_preregister_patients + LEFT JOIN m_title ON Mcu_PreregisterPatientsM_TitleID = M_TitleID + LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID + WHERE + Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = {$setup['Mgm_McuID']} + $sql_where + $sqlStatus + ORDER BY T_OrderHeaderDate DESC, Mcu_PreregisterPatientsIsRegistered ASC, Mcu_PreregisterPatientsPatientName ASC + limit $number_limit offset $number_offset"; + + $query = $this->db_onedev->query($sql); + //echo $sql + if (!$query) { + $message = $this->db_onedev->error(); + $message['last_qry'] = + $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + }; + $rows = $query->result_array(); + if ($rows) { + foreach ($rows as $k => $v) { + $rows[$k]['packets'] = array(); + $rows[$k]['tests'] = array(); + $join_test = ''; + $filter_paket = "AND T_PacketSasCode IN ('')"; + $filter_test = "AND T_TestSasCode IN ('')"; + if ($v['Mcu_PreregisterPatientsOrders'] != '') { + $xjoin_tests = explode(',', $v['Mcu_PreregisterPatientsOrders']); + //print_r($xjoin_tests); + if ($xjoin_tests) { + foreach ($xjoin_tests as $kjt => $vjt) { + if ($join_test != '') + $join_test .= ","; + + $join_test .= "'{$vjt}'"; + } + } + //echo $join_test; + $filter_paket = "AND T_PacketSasCode IN ({$join_test})"; + $filter_test = "AND T_TestSasCode IN ({$join_test}) "; + } + $sql = "SELECT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test + FROM ss_price_mou + JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' + JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID + AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} + WHERE + T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'Y' $filter_paket"; + //echo $sql; + $rows[$k]['packets'] = $this->db_onedev->query($sql)->result_array(); + if ($rows[$k]['packets']) { + foreach ($rows[$k]['packets'] as $kp => $vp) { + $rows[$k]['packets'][$kp]['nat_test'] = json_decode($vp['nat_test']); + } + } + + $sql = "SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test + FROM ss_price_mou + JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' + WHERE + T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'N' AND + T_PriceIsCito = 'N' $filter_test"; + //echo $sql; + $rows[$k]['tests'] = $this->db_onedev->query($sql)->result_array(); + if ($rows[$k]['tests']) { + foreach ($rows[$k]['tests'] as $kp => $vp) { + $rows[$k]['tests'][$kp]['nat_test'] = json_decode($vp['nat_test']); + } + } + } + $pids = array(); + $sql = "SELECT Mcu_PreregisterPatientsM_PatientID as id + FROM mcu_preregister_patients + WHERE + Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = '{$setup['Mgm_McuID']}'"; + + $rows_all = $this->db_onedev->query($sql)->result_array(); + //echo $sql; + if ($rows_all) { + foreach ($rows_all as $ka => $va) { + array_push($pids, $va['id']); + } + } + } + //$this->_add_address($rows); + $result = array("total" => $tot_page, "total_data" => $tot_count, "records" => $rows, "pids" => $pids, "sql" => $this->db_onedev->last_query()); + $this->sys_ok($result); + exit; + } + function search_patient_table() + { + $prm = $this->sys_input; + $setup = $prm['setup']; + + $max_rst = 100; + $tot_count = 0; + $number_limit = 10; + $number_offset = (!isset($prm['current_page']) ? 1 : $prm['current_page'] - 1) * $number_limit; + if (isset($prm['reload'])) { + $number_limit = intval($prm['current_page']) * 10; + $number_offset = 0; + } + + $q = [ + 'name' => '', + 'hp' => '', + 'dob' => '', + 'address' => '' + ]; + + + + if ($prm['search'] != '') { + $e = explode('+', $prm['search']); + if (isset($e[0])) + $q['name'] = "AND M_PatientName LIKE '%{$e[0]}%'"; + if (isset($e[1])) + $q['dob'] = "AND ((DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') LIKE '%{$e[1]}%' and M_PatientDOB IS NOT NULL) OR (M_PatientDOB IS NULL AND '{$e[1]}' = ''))"; + if (isset($e[2])) + $q['nik'] = "AND M_PatientNIP LIKE '%{$e[2]}%'"; + } + + + $sql = "SELECT m_patient.*, + 'N' divider, + concat(IFNULL(M_TitleName,''),' ',IFNULL(M_PatientPrefix,''),' ',M_PatientName,' ',IFNULL(M_PatientSuffix,'')) M_PatientName, + M_PatientName M_PatientRealName, M_TitleID, M_TitleName, M_PatientGender, + DATE_FORMAT(M_PatientDOB,'%d-%m-%Y') as dob_ina, + IFNULL(M_PatientReligionCode, '-') M_PatientReligionCode, + M_PatientNoReg as Mcu_PreregisterPatientsPID, + M_PatientIdentifierValue as Mcu_PreregisterPatientsKTP, + M_PatientID as Mcu_PreregisterPatientsM_PatientID, + M_TitleID as Mcu_PreregisterPatientsM_TitleID, + M_PatientName as Mcu_PreregisterDetailsPatientName, + M_PatientGender as Mcu_PreregisterPatientsPatientName, + M_PatientDOB as Mcu_PreregisterPatientsDOB, + IFNULL(M_PatientReligionCode,0) as Mcu_PreregisterPatientsReligion, + M_PatientEmail as Mcu_PreregisterPatientsEmail, + M_PatientHP as Mcu_PreregisterPatientsHp, + M_PatientPosisi as Mcu_PreregisterPatientsPosisi, + M_PatientDivisi as Mcu_PreregisterPatientsDivisi, + M_PatientJob as Mcu_PreregisterPatientsJob, + M_PatientDepartement as Mcu_PreregisterPatientsDepartment + from + m_patient + LEFT join m_title on M_PatientM_TitleID = M_TitleID + where M_PatientIsActive = 'Y' + AND M_PatientRegisteredByCorporateID = {$setup['Mgm_McuCorporateID']} + {$q['name']} + {$q['dob']} + {$q['nik']} + group by M_PatientID + limit $number_limit offset $number_offset"; + //echo $sql; + $query = $this->db_onedev->query($sql); + $qryListing = $this->db_onedev->last_query(); + + if ($query) { + $rows = $query->result_array(); + if ($rows) { + $per_divider = 1; + foreach ($rows as $k => $v) { + if ($per_divider == 10) { + $rows[$k]['divider'] = 'Y'; + } + $per_divider = $per_divider + 1; + if ($per_divider > 10) + $per_divider = 1; + } + } + $pids = array(); + $sql = "SELECT Mcu_PreregisterPatientsM_PatientID as id + FROM mcu_preregister_patients + WHERE + Mcu_PreregisterPatientsIsActive = 'Y' AND Mcu_PreregisterPatientsMgm_McuID = '{$setup['Mgm_McuID']}'"; + + $rows_all = $this->db_onedev->query($sql)->result_array(); + //echo $sql; + if ($rows_all) { + foreach ($rows_all as $ka => $va) { + array_push($pids, $va['id']); + } + } + + $result = array("total" => "", "records" => $rows, "pids" => $pids, "sql" => $this->db_onedev->last_query(), "qrylisting" => $qryListing); + $this->sys_ok($result); + } else { + $this->sys_error_db("m_patient rows", $this->db_onedev); + exit; + } + } + function savenewform() + { + // $this->db_onedev->trans_begin(); + $this->db_onedev->trans_begin(); + // $this->db_onedev->trans_rollback(); + // $this->db_onedev->trans_commit(); + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $userid = $this->sys_user["M_UserID"]; + $prm = $this->sys_input; + //print_r($prm); + $setup = $prm['setup']; + $sql = "SELECT CorporateCode FROM corporate WHERE CorporateID = '{$setup['Mgm_McuCorporateID']}'"; + $qry = $this->db_onedev->query($sql); + if (!$qry) { + $message = $this->db_onedev->error(); + $this->db_onedev->trans_rollback(); + $this->sys_error($message); + exit; + } + $corporateCode = $qry->row_array()['CorporateCode']; + $v = $prm; + + $name = str_replace("'", "\\'", $v['M_PatientRealName']); + $nameEscape = $this->db_onedev->escape($v['M_PatientRealName']); + // print_r($name); + $pdob = date('Y-m-d', strtotime($v['M_PatientDOB'])); + + // $data = array( + // "Mcu_PreregisterPatientsMgm_McuID" => $setup['Mgm_McuID'], + // "Mcu_PreregisterPatientsPID" => $v['Mcu_PreregisterPatientsPID'], + // "Mcu_PreregisterPatientsM_PatientID" => $v['M_PatientID'], + // "Mcu_PreregisterPatientsKTP" => $v['Mcu_PreregisterPatientsKTP'], + // "Mcu_PreregisterPatientsPatientPrefix" => $v['M_PatientPrefix'], + // "Mcu_PreregisterPatientsPatientName" => $name, + // "Mcu_PreregisterPatientsPatientSuffix" => $v['M_PatientSuffix'], + // "Mcu_PreregisterPatientsGender" => $v['M_PatientGender'], + // "Mcu_PreregisterPatientsDOB" => $pdob, + // "Mcu_PreregisterPatientsReligion" => $v['M_PatientReligionCode'], + // "Mcu_PreregisterPatientsJob" => $v['M_PatientJob'], + // "Mcu_PreregisterPatientsEmail" => $v['M_PatientEmail'], + // "Mcu_PreregisterPatientsHp" => $v['M_PatientHp'], + // "Mcu_PreregisterPatientsPosisi" => $v['M_PatientPosisi'], + // "Mcu_PreregisterPatientsDivisi" => $v['M_PatientDivisi'], + // "Mcu_PreregisterPatientsLocation" => $v['M_PatientLocation'], + // "Mcu_PreregisterPatientsCreated" => date('Y-m-d H:i:s'), + // "Mcu_PreregisterPatientsUserID" => $userid, + // "Mcu_PreregisterPatientsM_TitleID" => $v['Mcu_PreregisterPatientsM_TitleID'], + // "Mcu_PreregisterPatientsCorporateCode" => $corporateCode, + // "Mcu_PreregisterPatientsDepartment" => $v['M_PatientDepartement'], + // "Mcu_PreregisterPatientsNIP" => $v['M_PatientNIP'] + // ); + + // $rows = $this->db_onedev->insert( + // "mcu_preregister_patients", + // $data + // ); + // $setup['Mgm_McuID'], + // $v['Mcu_PreregisterPatientsPID'], + // $v['M_PatientID'], + // $v['Mcu_PreregisterPatientsKTP'], + // $v['M_PatientPrefix'], + // $this->db_onedev->escape_str($name), + // $v['M_PatientSuffix'], + // $v['M_PatientGender'], + // $pdob, + // $v['M_PatientReligionCode'], + // $v['M_PatientJob'], + // $v['M_PatientEmail'], + // $v['M_PatientHp'], + // $v['M_PatientPosisi'], + // $v['M_PatientDivisi'], + // $v['M_PatientLocation'], + // $userid, + // $v['Mcu_PreregisterPatientsM_TitleID'], + // $corporateCode, + // $v['M_PatientDepartement'], + // $v['M_PatientNIP'] + $query = "INSERT INTO mcu_preregister_patients ( + Mcu_PreregisterPatientsMgm_McuID, + Mcu_PreregisterPatientsPID, + Mcu_PreregisterPatientsM_PatientID, + Mcu_PreregisterPatientsKTP, + Mcu_PreregisterPatientsPatientPrefix, + Mcu_PreregisterPatientsPatientName, + Mcu_PreregisterPatientsPatientSuffix, + Mcu_PreregisterPatientsGender, + Mcu_PreregisterPatientsDOB, + Mcu_PreregisterPatientsReligion, + Mcu_PreregisterPatientsJob, + Mcu_PreregisterPatientsEmail, + Mcu_PreregisterPatientsHp, + Mcu_PreregisterPatientsPosisi, + Mcu_PreregisterPatientsDivisi, + Mcu_PreregisterPatientsLocation, + Mcu_PreregisterPatientsCreated, + Mcu_PreregisterPatientsUserID, + Mcu_PreregisterPatientsM_TitleID, + Mcu_PreregisterPatientsCorporateCode, + Mcu_PreregisterPatientsDepartment, + Mcu_PreregisterPatientsNIP + ) + VALUES( + ?,?,?,?,?,?,?, + ?, + ?, + ?, + ?, + ?, + ?, + ?, + ?, + ?, + NOW(), + ?, + ?, + ?, + ?, + ? + )"; + //echo $query; + $rows = $this->db_onedev->query($query, [ + $setup['Mgm_McuID'], + $v['Mcu_PreregisterPatientsPID'], + $v['M_PatientID'], + $v['Mcu_PreregisterPatientsKTP'], + $v['M_PatientPrefix'], + $v['M_PatientRealName'], + $v['M_PatientSuffix'], + $v['M_PatientGender'], + $pdob, + $v['M_PatientReligionCode'], + $v['M_PatientJob'], + $v['M_PatientEmail'], + $v['M_PatientHp'], + $v['M_PatientPosisi'], + $v['M_PatientDivisi'], + $v['M_PatientLocation'], + $userid, + $v['Mcu_PreregisterPatientsM_TitleID'], + $corporateCode, + $v['M_PatientDepartement'], + $v['M_PatientNIP'] + ]); + if (!$rows) { + $message = $this->db_onedev->error(); + $this->db_onedev->trans_rollback(); + $this->sys_error($message); + exit; + } $last_id_x = $this->db_onedev->insert_id(); - $tanggalMcu = $this->extract_tanggal_mcu($prm); - $this->sync_schedule_and_daily($last_id_x, $setup['Mgm_McuID'], $tanggalMcu); if (intval($v['Mcu_PreregisterPatientsM_PatientID']) == 0) { - // { - // "Mcu_PreregisterPatientsID": 0, - // "Mcu_PreregisterPatientsNIK": "", - // "Mcu_PreregisterPatientsKTP": "ktp", - // "Mcu_PreregisterPatientsM_TitleID": "1", - // "Mcu_PreregisterPatientsPatientPrefix": "", - // "Mcu_PreregisterPatientsPatientName": "nama", - // "Mcu_PreregisterPatientsPatientSuffix": "", - // "Mcu_PreregisterPatientsM_SexCode": "MALE", - // "Mcu_PreregisterPatientsDOB": "06-11-2000", - // "Mcu_PreregisterPatientsPosisi": "jabatan", - // "Mcu_PreregisterPatientsEmail": "", - // "Mcu_PreregisterPatientsHp": "", - // "Mcu_PreregisterPatientsDivisi": "divisi", - // "Mcu_PreregisterPatientsLocation": "lokasi ", - // "Mcu_PreregisterPatientsJob": "pekerjaan", - // "Mcu_PreregisterPatientsDepartment": "departement", - // "Mcu_PreregisterPatientsM_PatientID": 0, - // "setup": { - // "Mgm_McuID": "31", - // "Mgm_McuT_PriceHeaderID": "1", - // "Mgm_McuM_BranchID": "1", - // "Mgm_McuLabel": "MCU WESTERINDO", - // "Mgm_McuFlagRelasiBayarSendiri": "N", - // "Mgm_McuBisaTambahPemeriksaan": "N", - // "Mgm_McuCorporateID": "36", - // "Mgm_McuNumber": "MGM240600028", - // "Mgm_McuNumberNational": "", - // "Mgm_McuNote": "", - // "Mgm_McuStartDate": "2024-06-20", - // "Mgm_McuEndDate": "2024-06-30", - // "Mgm_McuPicEmail": "joko@gmail.com", - // "Mgm_McuPicPassword": "b4f6ec9fb9956ce1b2a8b5144ea10519", - // "Mgm_McuIsActive": "Y", - // "Mgm_McuCreated": "2024-06-20 17:07:04", - // "Mgm_McuCreatedUserID": "2", - // "Mgm_McuLastUpdated": "0000-00-00 00:00:00", - // "Mgm_McuLastUpdatedUserID": "0", - // "Mgm_McuLastDeleted": "0000-00-00 00:00:00", - // "Mgm_McuLastDeletedUserID": "0", - // "Mgm_McuTotalParticipant": "0" - // } - // } - $sql = "SELECT fn_numbering_cpone('P') as number"; - $rows = $this->db_onedev->query($sql); - if (!$rows) { - $message = $this->db_onedev->error(); - $this->db_onedev->trans_rollback(); - $this->sys_error($message); - exit; - } - $number = $rows->result_array()[0]['number']; - - $title_id = $v['Mcu_PreregisterPatientsM_TitleID']; - // $religion_id = $v['Mcu_PreregisterDetailsM_ReligionID']; - $religion_id = ''; - $nameNewP = $this->db_onedev->escape($v["Mcu_PreregisterPatientsPatientName"]); - $nameNewPn = str_replace("'", "\\'", $v['Mcu_PreregisterPatientsPatientName']); - - - - $sql = "INSERT INTO m_patient ( - M_PatientPrefix, - M_PatientName, - M_PatientSuffix, - M_PatientM_TitleID, - M_PatientGender, - M_PatientDOB, - M_PatientIdentifierCode, - M_PatientIdentifierSystem, - M_PatientIdentifierValue, - M_PatientPosisi, - M_PatientDivisi, - M_PatientLocation, - M_PatientJob, - M_PatientEmail, - M_PatientHP, - M_PatientCreatedUserID, - M_PatientNIP, - M_PatientDepartement, - M_PatientNoReg, - M_PatientCreated, - M_PatientRegisteredByCorporateID - ) - VALUES( - '{$v["Mcu_PreregisterPatientsPatientPrefix"]}', - '{$nameNewPn}', - '{$v["Mcu_PreregisterPatientsPatientSuffix"]}', - '{$title_id}', - '{$v["Mcu_PreregisterPatientsM_SexCode"]}', - '{$pdob}', - 'NNIDN', - 'http://terminology.hl7.org/CodeSystem/v2-0203', - '{$v["Mcu_PreregisterPatientsKTP"]}', - '{$v['Mcu_PreregisterPatientsPosisi']}', - '{$v['Mcu_PreregisterPatientsDivisi']}', - '{$v['Mcu_PreregisterPatientsLocation']}', - '{$v['Mcu_PreregisterPatientsJob']}', - '{$v['Mcu_PreregisterPatientsEmail']}', - '{$v['Mcu_PreregisterPatientsHp']}', - '{$userid}', - '{$v['Mcu_PreregisterPatientsNIK']}', - '{$v['Mcu_PreregisterPatientsDepartment']}', - '{$number}', - NOW(), - '{$setup['Mgm_McuCorporateID']}' - )"; - //echo $sql; - $rows = $this->db_onedev->query($sql); - if (!$rows) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->db_onedev->trans_rollback(); - $this->sys_error($message); - exit; - } - $patient_id = $this->db_onedev->insert_id(); - $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterPatientsM_PatientID = {$patient_id}, Mcu_PreregisterPatientsPID ='{$number}' WHERE Mcu_PreregisterPatientsID = {$last_id_x}"; - $rows = $this->db_onedev->query($sql); - if (!$rows) { - $message = $this->db_onedev->error(); - $this->db_onedev->trans_rollback(); - $this->sys_error($message); - exit; - } - - // $sql = "SELECT * FROM m_patient WHERE M_PatientID = {$patient_id}"; - // $ptn = $this->db_onedev->query($sql)->row_array(); - // $ptn = json_encode($ptn); - - //$this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_ADD', '{$ptn_addr}', $userid)"); + // { + // "Mcu_PreregisterPatientsID": 0, + // "Mcu_PreregisterPatientsNIK": "", + // "Mcu_PreregisterPatientsKTP": "ktp", + // "Mcu_PreregisterPatientsM_TitleID": "1", + // "Mcu_PreregisterPatientsPatientPrefix": "", + // "Mcu_PreregisterPatientsPatientName": "nama", + // "Mcu_PreregisterPatientsPatientSuffix": "", + // "Mcu_PreregisterPatientsM_SexCode": "MALE", + // "Mcu_PreregisterPatientsDOB": "06-11-2000", + // "Mcu_PreregisterPatientsPosisi": "jabatan", + // "Mcu_PreregisterPatientsEmail": "", + // "Mcu_PreregisterPatientsHp": "", + // "Mcu_PreregisterPatientsDivisi": "divisi", + // "Mcu_PreregisterPatientsLocation": "lokasi ", + // "Mcu_PreregisterPatientsJob": "pekerjaan", + // "Mcu_PreregisterPatientsDepartment": "departement", + // "Mcu_PreregisterPatientsM_PatientID": 0, + // "setup": { + // "Mgm_McuID": "31", + // "Mgm_McuT_PriceHeaderID": "1", + // "Mgm_McuM_BranchID": "1", + // "Mgm_McuLabel": "MCU WESTERINDO", + // "Mgm_McuFlagRelasiBayarSendiri": "N", + // "Mgm_McuBisaTambahPemeriksaan": "N", + // "Mgm_McuCorporateID": "36", + // "Mgm_McuNumber": "MGM240600028", + // "Mgm_McuNumberNational": "", + // "Mgm_McuNote": "", + // "Mgm_McuStartDate": "2024-06-20", + // "Mgm_McuEndDate": "2024-06-30", + // "Mgm_McuPicEmail": "joko@gmail.com", + // "Mgm_McuPicPassword": "b4f6ec9fb9956ce1b2a8b5144ea10519", + // "Mgm_McuIsActive": "Y", + // "Mgm_McuCreated": "2024-06-20 17:07:04", + // "Mgm_McuCreatedUserID": "2", + // "Mgm_McuLastUpdated": "0000-00-00 00:00:00", + // "Mgm_McuLastUpdatedUserID": "0", + // "Mgm_McuLastDeleted": "0000-00-00 00:00:00", + // "Mgm_McuLastDeletedUserID": "0", + // "Mgm_McuTotalParticipant": "0" + // } + // } + $sql = "SELECT fn_numbering_cpone('P') as number"; + $rows = $this->db_onedev->query($sql); + if (!$rows) { + $message = $this->db_onedev->error(); + $this->db_onedev->trans_rollback(); + $this->sys_error($message); + exit; + } + $number = $rows->result_array()[0]['number']; + + $title_id = $v['Mcu_PreregisterPatientsM_TitleID']; + // $religion_id = $v['Mcu_PreregisterDetailsM_ReligionID']; + $religion_id = ''; + $nameNewP = $this->db_onedev->escape($v["Mcu_PreregisterPatientsPatientName"]); + $nameNewPn = str_replace("'", "\\'", $v['Mcu_PreregisterPatientsPatientName']); + + + + $sql = "INSERT INTO m_patient ( + M_PatientPrefix, + M_PatientName, + M_PatientSuffix, + M_PatientM_TitleID, + M_PatientGender, + M_PatientDOB, + M_PatientIdentifierCode, + M_PatientIdentifierSystem, + M_PatientIdentifierValue, + M_PatientPosisi, + M_PatientDivisi, + M_PatientLocation, + M_PatientJob, + M_PatientEmail, + M_PatientHP, + M_PatientCreatedUserID, + M_PatientNIP, + M_PatientDepartement, + M_PatientNoReg, + M_PatientCreated, + M_PatientRegisteredByCorporateID + ) + VALUES( + '{$v["Mcu_PreregisterPatientsPatientPrefix"]}', + '{$nameNewPn}', + '{$v["Mcu_PreregisterPatientsPatientSuffix"]}', + '{$title_id}', + '{$v["Mcu_PreregisterPatientsM_SexCode"]}', + '{$pdob}', + 'NNIDN', + 'http://terminology.hl7.org/CodeSystem/v2-0203', + '{$v["Mcu_PreregisterPatientsKTP"]}', + '{$v['Mcu_PreregisterPatientsPosisi']}', + '{$v['Mcu_PreregisterPatientsDivisi']}', + '{$v['Mcu_PreregisterPatientsLocation']}', + '{$v['Mcu_PreregisterPatientsJob']}', + '{$v['Mcu_PreregisterPatientsEmail']}', + '{$v['Mcu_PreregisterPatientsHp']}', + '{$userid}', + '{$v['Mcu_PreregisterPatientsNIK']}', + '{$v['Mcu_PreregisterPatientsDepartment']}', + '{$number}', + NOW(), + '{$setup['Mgm_McuCorporateID']}' + )"; + //echo $sql; + $rows = $this->db_onedev->query($sql); + if (!$rows) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->db_onedev->trans_rollback(); + $this->sys_error($message); + exit; + } + $patient_id = $this->db_onedev->insert_id(); + $sql = "UPDATE mcu_preregister_patients SET Mcu_PreregisterPatientsM_PatientID = {$patient_id}, Mcu_PreregisterPatientsPID ='{$number}' WHERE Mcu_PreregisterPatientsID = {$last_id_x}"; + $rows = $this->db_onedev->query($sql); + if (!$rows) { + $message = $this->db_onedev->error(); + $this->db_onedev->trans_rollback(); + $this->sys_error($message); + exit; + } + + // $sql = "SELECT * FROM m_patient WHERE M_PatientID = {$patient_id}"; + // $ptn = $this->db_onedev->query($sql)->row_array(); + // $ptn = json_encode($ptn); + + //$this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_ADD', '{$ptn_addr}', $userid)"); } $this->sync_patient_dashboard($last_id_x); $result = array( - "total" => 1, - "records" => array('status' => 'OK') - ); - $this->db_onedev->trans_commit(); - $this->sys_ok($result); - exit; - } - function getsexreg() - { - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $rows = []; - $query = " SELECT * - FROM m_title - WHERE - M_TitleIsActive = 'Y' - "; - $gender = [ - [ - "M_SexID" => "MALE", - "M_SexCode" => "MALE", - "m_sexname" => "Laki Laki" - ], - [ - "M_SexID" => "FEMALE", - "M_SexCode" => "FEMALE", - "m_sexname" => "Perempuan" - ] - ]; - //echo $query; - $rows['titles'] = $this->db_onedev->query($query)->result_array(); - - - $rows['sexes'] = $gender; - $query = " SELECT * FROM terminology - WHERE attribute_path = 'Person.religion.code' - AND code_system = 'xcpone.code.religion' - AND status_cd = 'normal' - ORDER BY order_no - "; - //echo $query; - $rows['religions'] = $this->db_onedev->query($query)->result_array(); - - $query = " SELECT * FROM terminology - WHERE attribute_path = 'Person.identifier.type' - AND code_system = 'http://terminology.hl7.org/CodeSystem/v2-0203' - AND status_cd = 'normal' - ORDER BY order_no - "; - //echo $query; - $rows['kartuidentitass'] = $this->db_onedev->query($query)->result_array(); - - - $result = array( - "total" => count($rows), - "records" => $rows, - ); - $this->sys_ok($result); - exit; - } - function removepatient() - { - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $userid = $this->sys_user["M_UserID"]; - $prm = $this->sys_input; - - $query = " UPDATE mcu_preregister_patients SET - Mcu_PreregisterPatientsIsActive = 'N', - Mcu_PreregisterPatientsUserID = {$userid} - WHERE - Mcu_PreregisterPatientsID = {$prm['Mcu_PreregisterPatientsID']}"; - $this->db_onedev->query($query); - $result = array( - "total" => 1, - "records" => array('status' => 'OK') - ); - - $this->sys_ok($result); - exit; - } - function getdatapackets() - { - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $prm = $this->sys_input; - $search = $prm["search"]; - $setup = $prm["setup"]; - - $number_limit = 10; - $number_offset = ($prm['current_page'] - 1) * $number_limit; - - $sql = "SELECT DISTINCT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test - FROM ss_price_mou - JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' - JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID - AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} - WHERE - Ss_PriceMouMgm_McuID = {$setup['Mgm_McuID']} AND is_packet = 'Y' AND - ( T_TestName LIKE CONCAT('%','{$search}','%') )"; - - $sql = "SELECT count(*) as total - FROM ( - SELECT DISTINCT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test - FROM ss_price_mou - JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' - JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID - AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} - WHERE - T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'Y' AND - ( T_TestName LIKE CONCAT('%','{$search}','%') ) - ) x - "; - //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; - } - - $query = "SELECT DISTINCT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test - FROM ss_price_mou - JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' - JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID - AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} - WHERE - T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'Y' AND - ( T_TestName LIKE CONCAT('%','{$search}','%') ) - ORDER BY T_PacketSasCode ASC - limit $number_limit offset $number_offset - "; - //echo $query; - $rows = $this->db_onedev->query($query)->result_array(); - if ($rows) { - foreach ($rows as $kp => $vp) { - $rows[$kp]['nat_test'] = json_decode($vp['nat_test']); - } - } - - $result = array( - "total" => $tot_page, - "records" => $rows, - 'qry' => $this->db_onedev->last_query(), - ); - $this->sys_ok($result); - exit; - } - function getdatatests() - { - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $prm = $this->sys_input; - $search = $prm["search"]; - $setup = $prm["setup"]; - $number_limit = 10; - $number_offset = ($prm['current_page'] - 1) * $number_limit; - // $sql = "SELECT * FROM mgm_mcu - // JOIN t_priceheader - // ON Mgm_McuStartDate BETWEEN T_PriceHeaderStartDate AND T_PriceHeaderEndDate - // AND T_PriceHeaderEndDate BETWEEN T_PriceHeaderStartDate AND T_PriceHeaderEndDate - // WHERE Mgm_McuID = {$setup['Mgm_McuID']} - // ORDER BY T_PriceHeaderID DESC LIMIT 1"; - // $getpriceHeaderID = $this->db_onedev->query($sql, []); - // if (!$getpriceHeaderID) { - // $message = $this->db_onedev->error(); - // $this->sys_error($message); - // exit; - // } - // $priceheaderid = $getpriceHeaderID->result_array()[0]["T_PriceHeaderID"]; - - $sql = "SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test - FROM ss_price_mou - JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' - JOIN t_price price ON test.T_TestID = price.T_PriceT_TestID AND T_PriceIsActive = 'Y' - AND T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} - WHERE - Ss_PriceMouMgm_McuID = {$setup['Mgm_McuID']} AND is_packet = 'N' AND - price.T_PriceIsCito = 'N'"; - // AND T_PriceT_PriceHeaderID IN (SELECT t_priceheader FROM t_price WHERE T_PriceHeaderStartDate ) - $sql = "SELECT count(*) as total - FROM ( - SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test - FROM ss_price_mou - JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' - JOIN t_price price ON test.T_TestID = price.T_PriceT_TestID AND T_PriceIsActive = 'Y' - AND price.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} - WHERE - ss_price_mou.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} - AND is_packet = 'N' - AND price.T_PriceIsCito = 'N' - ) x - "; - //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; - } - $query = "SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test - FROM ss_price_mou - JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' - JOIN t_price price ON test.T_TestID = price.T_PriceT_TestID AND T_PriceIsActive = 'Y' - AND price.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} - WHERE - ss_price_mou.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} - AND is_packet = 'N' - AND price.T_PriceIsCito = 'N' - ORDER BY T_TestSasCode ASC - limit $number_limit offset $number_offset - "; - //echo $query; - $rows = $this->db_onedev->query($query)->result_array(); - if ($rows) { - foreach ($rows as $kp => $vp) { - $rows[$kp]['nat_test'] = json_decode($vp['nat_test']); - } - } - $result = array( - "total" => $tot_page, - "records" => $rows, - ); - $this->sys_ok($result); - exit; - } - function savepreregisterpatient() - { - $prm = $this->sys_input; - $userid = $this->sys_user["M_UserID"]; - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $v = $prm['selected_patient']; - $religion = $v['selected_religion']; - - $religionCode = $religion['code']; - $religionSystem = $religion['code_system']; - $setup = $prm['setup']; - - - - - $pdob = date('Y-m-d', strtotime($v['Mcu_PreregisterPatientsDOB'])); - - $Mcu_PreregisterPatientsTests = ''; - $packettests = array(); - if (count($prm['selected_packets']) > 0) { - foreach ($prm['selected_packets'] as $kp => $vp) { - array_push($packettests, $vp['code']); - } - } - if (count($prm['selected_tests']) > 0) { - foreach ($prm['selected_tests'] as $kt => $vt) { - array_push($packettests, $vt['code']); - } - } - if (count($packettests) > 0) { - $Mcu_PreregisterPatientsTests = join(',', $packettests); - } - // if (trim($v['Mcu_PreregisterPatientsKTP']) != "") { - // // $this->checkpatientbynamedob($v['Mcu_PreregisterPatientsPatientName'], $pdob, $v['Mcu_PreregisterPatientsM_PatientID'], $setup['Mgm_McuCorporateID']); - // // } else { - // $this->checkpatientbynoid($v['Mcu_PreregisterPatientsKTP'], $v['Mcu_PreregisterPatientsM_PatientID'], $setup['Mgm_McuCorporateID']); - // } - // if (trim($v['Mcu_PreregisterPatientsNIP']) != "") { - // $this->checkpatientbynip(trim($v['Mcu_PreregisterPatientsNIP']), $v['Mcu_PreregisterPatientsM_PatientID'], $setup['Mgm_McuCorporateID']); - // } - $query = " UPDATE mcu_preregister_patients SET - Mcu_PreregisterPatientsM_PatientID = ?, - Mcu_PreregisterPatientsKTP = ?, - Mcu_PreregisterPatientsNIP = ?, - Mcu_PreregisterPatientsPatientPrefix = ?, - Mcu_PreregisterPatientsPatientName = ?, - Mcu_PreregisterPatientsPatientSuffix = ?, - Mcu_PreregisterPatientsEmail = ?, - Mcu_PreregisterPatientsHp = ?, - Mcu_PreregisterPatientsDOB = ?, - Mcu_PreregisterPatientsPosisi = ?, - Mcu_PreregisterPatientsDivisi = ?, - Mcu_PreregisterPatientsJob = ?, - Mcu_PreregisterPatientsLocation = ?, - Mcu_PreregisterPatientsGender = ?, - Mcu_PreregisterPatientsM_TitleID = ?, - Mcu_PreregisterPatientsCorporateCode = ?, - Mcu_PreregisterPatientsDepartment = ?, - Mcu_PreregisterPatientsReligion = ?, - Mcu_PreregisterPatientsOrders = ?, - Mcu_PreregisterPatientsUserID = ?, - Mcu_PreregisterPatientsLastUpdated = NOW() - WHERE - Mcu_PreregisterPatientsID = ?"; - //echo $query; + "total" => 1, + "records" => array('status' => 'OK') + ); + $this->db_onedev->trans_commit(); + $this->sys_ok($result); + exit; + } + function getsexreg() + { + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $rows = []; + $query = " SELECT * + FROM m_title + WHERE + M_TitleIsActive = 'Y' + "; + $gender = [ + [ + "M_SexID" => "MALE", + "M_SexCode" => "MALE", + "m_sexname" => "Laki Laki" + ], + [ + "M_SexID" => "FEMALE", + "M_SexCode" => "FEMALE", + "m_sexname" => "Perempuan" + ] + ]; + //echo $query; + $rows['titles'] = $this->db_onedev->query($query)->result_array(); + + + $rows['sexes'] = $gender; + $query = " SELECT * FROM terminology + WHERE attribute_path = 'Person.religion.code' + AND code_system = 'xcpone.code.religion' + AND status_cd = 'normal' + ORDER BY order_no + "; + //echo $query; + $rows['religions'] = $this->db_onedev->query($query)->result_array(); + + $query = " SELECT * FROM terminology + WHERE attribute_path = 'Person.identifier.type' + AND code_system = 'http://terminology.hl7.org/CodeSystem/v2-0203' + AND status_cd = 'normal' + ORDER BY order_no + "; + //echo $query; + $rows['kartuidentitass'] = $this->db_onedev->query($query)->result_array(); + + + $result = array( + "total" => count($rows), + "records" => $rows, + ); + $this->sys_ok($result); + exit; + } + function removepatient() + { + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $userid = $this->sys_user["M_UserID"]; + $prm = $this->sys_input; + + $query = " UPDATE mcu_preregister_patients SET + Mcu_PreregisterPatientsIsActive = 'N', + Mcu_PreregisterPatientsUserID = {$userid} + WHERE + Mcu_PreregisterPatientsID = {$prm['Mcu_PreregisterPatientsID']}"; + $this->db_onedev->query($query); + $result = array( + "total" => 1, + "records" => array('status' => 'OK') + ); + + $this->sys_ok($result); + exit; + } + function getdatapackets() + { + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $prm = $this->sys_input; + $search = $prm["search"]; + $setup = $prm["setup"]; + + $number_limit = 10; + $number_offset = ($prm['current_page'] - 1) * $number_limit; + + $sql = "SELECT DISTINCT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test + FROM ss_price_mou + JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' + JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID + AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} + WHERE + Ss_PriceMouMgm_McuID = {$setup['Mgm_McuID']} AND is_packet = 'Y' AND + ( T_TestName LIKE CONCAT('%','{$search}','%') )"; + + $sql = "SELECT count(*) as total + FROM ( + SELECT DISTINCT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test + FROM ss_price_mou + JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' + JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID + AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} + WHERE + T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'Y' AND + ( T_TestName LIKE CONCAT('%','{$search}','%') ) + ) x + "; + //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; + } + + $query = "SELECT DISTINCT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test + FROM ss_price_mou + JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' + JOIN mgm_mcupacket ON T_PacketID = Mgm_McuPacketT_PacketID + AND Mgm_McuPacketIsActive = 'Y' AND Mgm_McuPacketMgm_McuID = {$setup['Mgm_McuID']} + WHERE + T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} AND is_packet = 'Y' AND + ( T_TestName LIKE CONCAT('%','{$search}','%') ) + ORDER BY T_PacketSasCode ASC + limit $number_limit offset $number_offset + "; + //echo $query; + $rows = $this->db_onedev->query($query)->result_array(); + if ($rows) { + foreach ($rows as $kp => $vp) { + $rows[$kp]['nat_test'] = json_decode($vp['nat_test']); + } + } + + $result = array( + "total" => $tot_page, + "records" => $rows, + 'qry' => $this->db_onedev->last_query(), + ); + $this->sys_ok($result); + exit; + } + function getdatatests() + { + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $prm = $this->sys_input; + $search = $prm["search"]; + $setup = $prm["setup"]; + $number_limit = 10; + $number_offset = ($prm['current_page'] - 1) * $number_limit; + // $sql = "SELECT * FROM mgm_mcu + // JOIN t_priceheader + // ON Mgm_McuStartDate BETWEEN T_PriceHeaderStartDate AND T_PriceHeaderEndDate + // AND T_PriceHeaderEndDate BETWEEN T_PriceHeaderStartDate AND T_PriceHeaderEndDate + // WHERE Mgm_McuID = {$setup['Mgm_McuID']} + // ORDER BY T_PriceHeaderID DESC LIMIT 1"; + // $getpriceHeaderID = $this->db_onedev->query($sql, []); + // if (!$getpriceHeaderID) { + // $message = $this->db_onedev->error(); + // $this->sys_error($message); + // exit; + // } + // $priceheaderid = $getpriceHeaderID->result_array()[0]["T_PriceHeaderID"]; + + $sql = "SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test + FROM ss_price_mou + JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' + JOIN t_price price ON test.T_TestID = price.T_PriceT_TestID AND T_PriceIsActive = 'Y' + AND T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} + WHERE + Ss_PriceMouMgm_McuID = {$setup['Mgm_McuID']} AND is_packet = 'N' AND + price.T_PriceIsCito = 'N'"; + // AND T_PriceT_PriceHeaderID IN (SELECT t_priceheader FROM t_price WHERE T_PriceHeaderStartDate ) + $sql = "SELECT count(*) as total + FROM ( + SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test + FROM ss_price_mou + JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' + JOIN t_price price ON test.T_TestID = price.T_PriceT_TestID AND T_PriceIsActive = 'Y' + AND price.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} + WHERE + ss_price_mou.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} + AND is_packet = 'N' + AND price.T_PriceIsCito = 'N' + ) x + "; + //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; + } + $query = "SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test + FROM ss_price_mou + JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' + JOIN t_price price ON test.T_TestID = price.T_PriceT_TestID AND T_PriceIsActive = 'Y' + AND price.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} + WHERE + ss_price_mou.T_PriceT_PriceHeaderID = {$setup['Mgm_McuT_PriceHeaderID']} + AND is_packet = 'N' + AND price.T_PriceIsCito = 'N' + ORDER BY T_TestSasCode ASC + limit $number_limit offset $number_offset + "; + //echo $query; + $rows = $this->db_onedev->query($query)->result_array(); + if ($rows) { + foreach ($rows as $kp => $vp) { + $rows[$kp]['nat_test'] = json_decode($vp['nat_test']); + } + } + $result = array( + "total" => $tot_page, + "records" => $rows, + ); + $this->sys_ok($result); + exit; + } + function savepreregisterpatient() + { + $prm = $this->sys_input; + $userid = $this->sys_user["M_UserID"]; + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $v = $prm['selected_patient']; + $religion = $v['selected_religion']; + + $religionCode = $religion['code']; + $religionSystem = $religion['code_system']; + $setup = $prm['setup']; + + + + + $pdob = date('Y-m-d', strtotime($v['Mcu_PreregisterPatientsDOB'])); + + $Mcu_PreregisterPatientsTests = ''; + $packettests = array(); + if (count($prm['selected_packets']) > 0) { + foreach ($prm['selected_packets'] as $kp => $vp) { + array_push($packettests, $vp['code']); + } + } + if (count($prm['selected_tests']) > 0) { + foreach ($prm['selected_tests'] as $kt => $vt) { + array_push($packettests, $vt['code']); + } + } + if (count($packettests) > 0) { + $Mcu_PreregisterPatientsTests = join(',', $packettests); + } + // if (trim($v['Mcu_PreregisterPatientsKTP']) != "") { + // // $this->checkpatientbynamedob($v['Mcu_PreregisterPatientsPatientName'], $pdob, $v['Mcu_PreregisterPatientsM_PatientID'], $setup['Mgm_McuCorporateID']); + // // } else { + // $this->checkpatientbynoid($v['Mcu_PreregisterPatientsKTP'], $v['Mcu_PreregisterPatientsM_PatientID'], $setup['Mgm_McuCorporateID']); + // } + // if (trim($v['Mcu_PreregisterPatientsNIP']) != "") { + // $this->checkpatientbynip(trim($v['Mcu_PreregisterPatientsNIP']), $v['Mcu_PreregisterPatientsM_PatientID'], $setup['Mgm_McuCorporateID']); + // } + $query = " UPDATE mcu_preregister_patients SET + Mcu_PreregisterPatientsM_PatientID = ?, + Mcu_PreregisterPatientsKTP = ?, + Mcu_PreregisterPatientsNIP = ?, + Mcu_PreregisterPatientsPatientPrefix = ?, + Mcu_PreregisterPatientsPatientName = ?, + Mcu_PreregisterPatientsPatientSuffix = ?, + Mcu_PreregisterPatientsEmail = ?, + Mcu_PreregisterPatientsHp = ?, + Mcu_PreregisterPatientsDOB = ?, + Mcu_PreregisterPatientsPosisi = ?, + Mcu_PreregisterPatientsDivisi = ?, + Mcu_PreregisterPatientsJob = ?, + Mcu_PreregisterPatientsLocation = ?, + Mcu_PreregisterPatientsGender = ?, + Mcu_PreregisterPatientsM_TitleID = ?, + Mcu_PreregisterPatientsCorporateCode = ?, + Mcu_PreregisterPatientsDepartment = ?, + Mcu_PreregisterPatientsReligion = ?, + Mcu_PreregisterPatientsOrders = ?, + Mcu_PreregisterPatientsUserID = ?, + Mcu_PreregisterPatientsLastUpdated = NOW() + WHERE + Mcu_PreregisterPatientsID = ?"; + //echo $query; $rows = $this->db_onedev->query($query, [ - $v['Mcu_PreregisterPatientsM_PatientID'], - $v['Mcu_PreregisterPatientsKTP'], - $v['Mcu_PreregisterPatientsNIP'], - $v['Mcu_PreregisterPatientsPatientPrefix'], - $v['Mcu_PreregisterPatientsPatientName'], - $v['Mcu_PreregisterPatientsPatientSuffix'], - $v['Mcu_PreregisterPatientsEmail'], - $v['Mcu_PreregisterPatientsHp'], - $pdob, - $v['Mcu_PreregisterPatientsPosisi'], - $v['Mcu_PreregisterPatientsDivisi'], - $v['Mcu_PreregisterPatientsJob'], - $v['Mcu_PreregisterPatientsLocation'], - $v['Mcu_PreregisterPatientsGender'], - $v['Mcu_PreregisterPatientsM_TitleID'], - $v['Mcu_PreregisterPatientsCorporateCode'], - $v['Mcu_PreregisterPatientsDepartment'], - $religionCode, - $Mcu_PreregisterPatientsTests, - $userid, - $v['Mcu_PreregisterPatientsID'] - ]); + $v['Mcu_PreregisterPatientsM_PatientID'], + $v['Mcu_PreregisterPatientsKTP'], + $v['Mcu_PreregisterPatientsNIP'], + $v['Mcu_PreregisterPatientsPatientPrefix'], + $v['Mcu_PreregisterPatientsPatientName'], + $v['Mcu_PreregisterPatientsPatientSuffix'], + $v['Mcu_PreregisterPatientsEmail'], + $v['Mcu_PreregisterPatientsHp'], + $pdob, + $v['Mcu_PreregisterPatientsPosisi'], + $v['Mcu_PreregisterPatientsDivisi'], + $v['Mcu_PreregisterPatientsJob'], + $v['Mcu_PreregisterPatientsLocation'], + $v['Mcu_PreregisterPatientsGender'], + $v['Mcu_PreregisterPatientsM_TitleID'], + $v['Mcu_PreregisterPatientsCorporateCode'], + $v['Mcu_PreregisterPatientsDepartment'], + $religionCode, + $Mcu_PreregisterPatientsTests, + $userid, + $v['Mcu_PreregisterPatientsID'] + ]); if (!$rows) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } - $tanggalMcu = $this->extract_tanggal_mcu($prm, $v); - $this->sync_schedule_and_daily($v['Mcu_PreregisterPatientsID'], $setup['Mgm_McuID'], $tanggalMcu); $this->sync_patient_dashboard($v['Mcu_PreregisterPatientsID']); - - $sql_ktp = ''; - if (isset($v['Mcu_PreregisterPatientsKTP']) && $v['Mcu_PreregisterPatientsKTP'] != '') { - $sql_ktp = "M_PatientIdentifierCode = 'NNIDN', M_PatientIdentifierSystem='http://terminology.hl7.org/CodeSystem/v2-0203', M_PatientIdentifierValue = '{$v['Mcu_PreregisterPatientsKTP']}',"; - //echo $sql_ktp; - } else { - $sql_ktp = "M_PatientIdentifierCode = '', M_PatientIdentifierSystem='', M_PatientIdentifierValue = '',"; - } - $sql = "UPDATE m_patient SET - $sql_ktp - M_PatientDOB = ?, - M_PatientM_TitleID = ?, - M_PatientNIP = ?, - M_PatientGender = ?, - M_PatientPrefix = ?, - M_PatientName = ?, - M_PatientSuffix = ?, - M_PatientEmail = ?, - M_PatientHP = ?, - M_PatientDivisi = ?, - M_PatientPosisi = ?, - M_PatientLocation = ?, - M_PatientJob = ?, - M_PatientDepartement = ?, - M_PatientReligionCode = ?, - M_PatientReligionSystem = ?, - M_PatientLastUpdatedUserID = ?, - M_PatientLastUpdated = NOW() - WHERE - M_PatientID = ? - "; - //echo $sql; - $qry = $this->db_onedev->query($sql, [ - $pdob, - $v['Mcu_PreregisterPatientsM_TitleID'], - $v['Mcu_PreregisterPatientsNIP'], - $v['Mcu_PreregisterPatientsGender'], - $v['Mcu_PreregisterPatientsPatientPrefix'], - $v['Mcu_PreregisterPatientsPatientName'], - $v['Mcu_PreregisterPatientsPatientSuffix'], - $v['Mcu_PreregisterPatientsEmail'], - $v['Mcu_PreregisterPatientsHp'], - $v['Mcu_PreregisterPatientsDivisi'], - $v['Mcu_PreregisterPatientsPosisi'], - $v['Mcu_PreregisterPatientsLocation'], - $v['Mcu_PreregisterPatientsJob'], - $v['Mcu_PreregisterPatientsDepartment'], - $religionCode, - $religionSystem, - $userid, - $v['Mcu_PreregisterPatientsM_PatientID'] - ]); - if (!$qry) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - - $result = array( - "msg" => "ok", - "total" => 1, - "records" => $prm - ); - - $this->sys_ok($result); - exit; - } - function checkpatientbynoid($noKtp, $pid, $corporateid) - { - // $prm = $this->sys_input; - // $userid = $this->sys_user["M_UserID"]; - // if (!$this->isLogin) { - // $this->sys_error("Invalid Token"); - // exit; - // } - // $noKtp = $prm['nik']; - // $pid = $prm['pid']; - // $corporateid = $prm['corporateid']; - $sql = "SELECT * FROM m_patient - WHERE M_PatientIdentifierCode = 'NNIDN' - AND M_PatientIdentifierValue = $noKtp - AND M_PatientIsActive = 'Y' - AND M_PatientID <> $pid - AND M_PatientRegisteredByCorporateID = $corporateid"; - $qry = $this->db_onedev->query($sql); - if (!$qry) { - $message = $this->db_onedev->error(); - $this->sys_error($message); - $message['qry'] = $this->db_onedev->last_query(); - exit; - } - $data = $qry->result_array(); - if (count($data) > 0) { - $rst = [ - - "msg" => "errpatient", - "msg_dialog" => "Pasien memiliki NIK sama dengan pasien berikut", - "data" => $data, - "total" => count($data) - ]; - $this->sys_ok($rst); - exit; - } - } - function checkpatientbynamedob($name, $dob, $pid, $corporateid) - { - // $prm = $this->sys_input; - // $userid = $this->sys_user["M_UserID"]; - // if (!$this->isLogin) { - // $this->sys_error("Invalid Token"); - // exit; - // } - // $name = $prm['name']; - // $dob = $prm['dob']; - // $pid = $prm['pid']; - // $corporateid = $prm['corporateid']; - $sql = "SELECT * FROM m_patient - WHERE LOWER(M_PatientName)=LOWER(?) - AND M_PatientDOB= '{$dob}' - AND M_PatientIsActive = 'Y' - AND M_PatientID <> $pid - AND M_PatientRegisteredByCorporateID = $corporateid"; - $qry = $this->db_onedev->query($sql, [$name]); - if (!$qry) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - // echo $sql; - $data = $qry->result_array(); - if (count($data) > 0) { - $rst = [ - "msg" => "errpatient", - "msg_dialog" => "Pasien memiliki Nama dan Tanggal Lahir sama dengan pasien berikut", - - "data" => $data, - "total" => count($data) - ]; - $this->sys_ok($rst); - exit; - } - } - function checkpatientbynip($nip, $pid, $corporateid) - { - // $prm = $this->sys_input; - // $userid = $this->sys_user["M_UserID"]; - // if (!$this->isLogin) { - // $this->sys_error("Invalid Token"); - // exit; - // } - // $name = $prm['name']; - // $dob = $prm['dob']; - // $pid = $prm['pid']; - // $corporateid = $prm['corporateid']; - $sql = "SELECT * FROM m_patient - WHERE M_PatientNIP= '{$nip}' - AND M_PatientIsActive = 'Y' - AND M_PatientID <> $pid - AND M_PatientRegisteredByCorporateID = $corporateid"; - $qry = $this->db_onedev->query($sql, []); - if (!$qry) { - $message = $this->db_onedev->error(); - $this->sys_error($message); - exit; - } - // echo $sql; - $data = $qry->result_array(); - if (count($data) > 0) { - $rst = [ - "msg" => "errpatient", - "msg_dialog" => "Pasien memiliki NIP sama dengan pasien berikut", - - "data" => $data, - "total" => count($data) - ]; - $this->sys_ok($rst); - exit; - } - } - function getDetailPacketByID() - { - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - - $userid = $this->sys_user["M_UserID"]; - $prm = $this->sys_input; - - $T_PacketID = $prm['T_PacketID']; - - $sql = "SELECT - T_PacketName, - T_PacketSasCode, - pd.T_PacketDetailID, - pd.T_PacketDetailT_PacketID, - pd.T_PacketDetailT_TestID, - pd.T_PacketDetailOriginalPrice, - pd.T_PacketDetailPrice, - pd.T_PacketDetailIsActive, - pd.T_PacketDetailCreated, - pd.T_PacketDetailLastUpdated, - pd.T_PacketDetailPriceAmount, - pd.T_PacketDetailPriceDisc, - pd.T_PacketDetailPriceDiscRp, - pd.T_PacketDetailPriceSubTotal, - t.T_TestID, - t.T_TestNat_GroupID, - t.T_TestNat_SubgroupID, - t.T_TestParentT_TestID, - t.T_TestCode, - t.T_TestSasCode, - t.T_TestName, - t.T_TestShortName, - t.T_TestShortNameBarcode, - t.T_TestWorklistName, - t.T_TestNat_TestID, - t.T_TestRequirement, - t.T_TestIsParent, - t.T_TestFontSize, - t.T_TestFontColor, - t.T_TestIsBold, - t.T_TestIsItalic, - t.T_TestT_SampleTypeID, - t.T_TestResultPosition, - t.T_TestNormalValue, - t.T_TestFlagGluc, - t.T_TestIsQuantitative, - t.T_TestIsPrintNota, - t.T_TestIsResult, - t.T_TestIsPrintResult, - t.T_TestIsPrice, - t.T_TestForceSell, - t.T_TestIsWorklist, - t.T_TestIsNonLab, - t.T_TestIsDeltaCheck, - t.T_TestIsTrendAnalysis, - t.T_TestLeftMargin, - t.T_TestCreated, - t.T_TestLastUpdated, - t.T_TestIsActive, - t.T_TestMaxDiscount, - t.T_TestFlagLow, - t.T_TestFlagHigh, - t.T_TestUserID, - t.T_TestFlagMCU, - t.T_TestNat_SubSubGroupID, - t.T_TestCreatedUserID, - t.T_TestLastUpdatedUserID, - t.T_TestDeleted, - t.T_TestDeletedUserID - FROM - t_packetdetail as pd - JOIN - t_test as t - ON - pd.T_PacketDetailT_TestID = t.T_TestID - AND t.T_TestIsActive = 'Y' - AND pd.T_PacketDetailIsActive = 'Y' - AND pd.T_PacketDetailT_PacketID = $T_PacketID - JOIN t_packet ON pd.T_PacketDetailT_PacketID = T_PacketID"; - - $qry = $this->db_onedev->query($sql); - if (!$qry) { - $this->sys_error_db("list packet", $this->db_onedev); - exit; - } - - $rows = $qry->result_array(); - $result = array( - // "total" => $tot_page, - "records" => $rows, - ); - $this->sys_ok($result); - exit; - } - function getpreregistermenu() - { - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - - $sql = "SELECT S_MenuUrl as url FROM s_menu - WHERE S_MenuName = 'Registration (Preregister)' LIMIT 1"; - $qry = $this->db_onedev->query($sql); - if (!$qry) { - $message = $this->db_onedev->error(); - $this->sys_error($message); - exit; - } - $data = $qry->row(); - - $this->sys_ok($data); - exit; - } - function lookup_barcodes() - { - try { - $prm = $this->sys_input; - //# cek token valid - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $sql = "SELECT T_BarcodeLabID as id, - 'barcode' as type, - T_SampleTypeID, - T_BarcodeLabID, - T_BarcodeLabBarcode, - T_BarcodeLabT_OrderHeaderID as orderid, - T_BarcodeLabCounter, - T_SampleTypeName, - 'N' as chex - FROM t_barcodelab - JOIN t_sampletype ON T_BarcodeLabT_SampleTypeID = T_SampleTypeID - JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID - JOIN t_samplestation ON T_BahanT_SampleStationID = T_SampleStationID AND T_SampleStationIsNonLab = '' - WHERE - T_BarcodeLabT_OrderHeaderID = {$prm['T_OrderHeaderID']} AND T_BarcodeLabIsActive = 'Y' - UNION - SELECT T_TestID as id, - 'nonlab' as type, - T_OrderDetailID as T_SampleTypeID, - '' as T_BarcodeLabID, - '-' as T_BarcodeLabBarcode, - T_OrderHeaderID as order_id, - 0 as T_BarcodeLabCounter, - T_TestName as T_SampleTypeName, - 'N' as chex - 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 AND T_TestIsResult = 'Y' - JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID - JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultName <> 'lab' - WHERE - T_OrderHeaderID = {$prm['T_OrderHeaderID']} - GROUP BY T_TestID - - "; - //echo $sql; - $query = $this->db_onedev->query($sql); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $rows = $query->result_array(); - $rst = []; - if ($rows) { - foreach ($rows as $k => $v) { - $v['chex'] = false; - // if ($v['chex'] == 'N') - // $rows[$k]['chex'] = false; - // else - // $rows[$k]['chex'] = true; - $v['count'] = 1; - $rst[] = $v; - // if ($v['type'] == 'barcode' && $v['T_SampleTypeID'] == 48) { - // $rst[] = $v; - // } - } - } - $result = array("total" => 0, "records" => $rst); - $this->sys_ok($result); - } catch (Exception $exc) { - $message = $exc->getMessage(); - $this->sys_error($message); - } - } - function getcorporate() - { - try { - $prm = $this->sys_input; - //# cek token valid - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $code = $prm['code']; - - - $sql = "SELECT - CorporateID, - CorporateCode, - CorporateName, - 'Y' AS CorporateDefault - FROM corporate - WHERE (CorporateID = ?);"; - //echo $sql; - $query = $this->db_onedev->query($sql, [$code]); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $corporate = $query->row_array(); - $sql = "SELECT - CorporateID, - CorporateCode, - CorporateName, - 'N' AS CorporateDefault - FROM corporate_relation - JOIN corporate ON CorporateRelationCorporateRelationID = CorporateID - AND CorporateRelationIsActive = 'Y' - AND CorporateRelationCorporateID = ?"; - //echo $sql; - $query = $this->db_onedev->query($sql, [$corporate['CorporateID']]); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $relation = $query->result_array(); - // $rows = [$corporate,...$relation] - $rows = [$corporate]; - for ($i = 0; $i < count($relation); $i++) { - array_push($rows, $relation[$i]); - } - $result = array("records" => $rows); - $this->sys_ok($result); - } catch (Exception $exc) { - $message = $exc->getMessage(); - $this->sys_error($message); - } - } - function search_patient_form() - { - $prm = $this->sys_input; - $name = $prm['name']; - $dob = $prm['dob']; - $nik = $prm['nik']; - $ktp = $prm['ktp']; - $add_where = ''; - // M_PatientIdentifierCode varchar(50) [NNIDN] - // M_PatientIdentifierSystem varchar(100) [http://terminology.hl7.org/CodeSystem/v2-0203] - // M_PatientIdentifierCode varchar(50) [NNIDN] - if ($nik != '') { - $add_where .= " AND M_PatientNIP = '{$nik}'"; - } - if ($ktp != '') { - $add_where .= " AND M_PatientIdentifierValue = '{$nik}' AND M_PatientIdentifierCode = 'NNIDN'"; - } - $setup = $prm['setup']; - $join_company = ""; - if (isset($prm['company']) && intval($prm['company']) > 0) { - $join_company = "JOIN t_orderheader ON T_OrderHeaderM_PatientID = M_PatientID AND - T_OrderHeaderIsActive = 'Y' AND - T_OrderHeaderM_CompanyID = {$prm['company']}"; - } - - $sql = "SELECT COUNT(*) as total - FROM ( - SELECT * - FROM m_patient - $join_company - LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID - WHERE - M_PatientIsActive = 'Y' - AND M_PatientRegisteredByCorporateID = {$setup['Mgm_McuCorporateID']} - AND M_PatientName LIKE CONCAT('%',?,'%') AND - (DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') LIKE '%{$dob}%' and M_PatientDOB IS NOT NULL) - {$add_where} - GROUP BY M_PatientID - ) x - "; - //echo $sql; - $qry = $this->db_onedev->query($sql, [$name]); - if (!$qry) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $countx = $qry->row()->total; - $sql = "SELECT *, DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') as dob_ina, - M_PatientNoReg as Mcu_PreregisterPatientsPID, - M_PatientIdentifierValue as Mcu_PreregisterPatientsKTP, - M_PatientID as Mcu_PreregisterPatientsM_PatientID, - M_TitleID as Mcu_PreregisterPatientsM_TitleID, - M_PatientName as Mcu_PreregisterPatientsPatientName, - M_PatientGender as Mcu_PreregisterPatientsGender, - M_PatientDOB as Mcu_PreregisterPatientsDOB, - IFNULL(M_PatientReligionCode,0) as Mcu_PreregisterPatientsReligion, - M_PatientEmail as Mcu_PreregisterDetailsEmail, - M_PatientHP as Mcu_PreregisterDetailsHp, - M_PatientEmail as Mcu_PreregisterPatientsEmail, - M_PatientHP as Mcu_PreregisterPatientsHp, - M_PatientPosisi as Mcu_PreregisterPatientsPosisi, - M_PatientDivisi as Mcu_PreregisterPatientsDivisi, - M_PatientJob as Mcu_PreregisterPatientsJob, - M_PatientDepartement as Mcu_PreregisterPatientsDepartment - FROM m_patient - $join_company - LEFT join m_title on M_PatientM_TitleID = M_TitleID - WHERE - M_PatientRegisteredByCorporateID = {$setup['Mgm_McuCorporateID']} - AND M_PatientIsActive = 'Y' AND - M_PatientName LIKE CONCAT('%',?,'%') AND - (DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') LIKE '%{$dob}%' and M_PatientDOB IS NOT NULL) - {$add_where} - GROUP BY M_PatientID - LIMIT 10 OFFSET 0 - "; - - //echo $sql; - $qry = $this->db_onedev->query($sql, [$name]); - if (!$qry) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $rows = $qry->result_array(); - $result = array( - "total" => $countx, - "records" => $rows - ); - $this->sys_ok($result); - exit; - } -} + + $sql_ktp = ''; + if (isset($v['Mcu_PreregisterPatientsKTP']) && $v['Mcu_PreregisterPatientsKTP'] != '') { + $sql_ktp = "M_PatientIdentifierCode = 'NNIDN', M_PatientIdentifierSystem='http://terminology.hl7.org/CodeSystem/v2-0203', M_PatientIdentifierValue = '{$v['Mcu_PreregisterPatientsKTP']}',"; + //echo $sql_ktp; + } else { + $sql_ktp = "M_PatientIdentifierCode = '', M_PatientIdentifierSystem='', M_PatientIdentifierValue = '',"; + } + $sql = "UPDATE m_patient SET + $sql_ktp + M_PatientDOB = ?, + M_PatientM_TitleID = ?, + M_PatientNIP = ?, + M_PatientGender = ?, + M_PatientPrefix = ?, + M_PatientName = ?, + M_PatientSuffix = ?, + M_PatientEmail = ?, + M_PatientHP = ?, + M_PatientDivisi = ?, + M_PatientPosisi = ?, + M_PatientLocation = ?, + M_PatientJob = ?, + M_PatientDepartement = ?, + M_PatientReligionCode = ?, + M_PatientReligionSystem = ?, + M_PatientLastUpdatedUserID = ?, + M_PatientLastUpdated = NOW() + WHERE + M_PatientID = ? + "; + //echo $sql; + $qry = $this->db_onedev->query($sql, [ + $pdob, + $v['Mcu_PreregisterPatientsM_TitleID'], + $v['Mcu_PreregisterPatientsNIP'], + $v['Mcu_PreregisterPatientsGender'], + $v['Mcu_PreregisterPatientsPatientPrefix'], + $v['Mcu_PreregisterPatientsPatientName'], + $v['Mcu_PreregisterPatientsPatientSuffix'], + $v['Mcu_PreregisterPatientsEmail'], + $v['Mcu_PreregisterPatientsHp'], + $v['Mcu_PreregisterPatientsDivisi'], + $v['Mcu_PreregisterPatientsPosisi'], + $v['Mcu_PreregisterPatientsLocation'], + $v['Mcu_PreregisterPatientsJob'], + $v['Mcu_PreregisterPatientsDepartment'], + $religionCode, + $religionSystem, + $userid, + $v['Mcu_PreregisterPatientsM_PatientID'] + ]); + if (!$qry) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + + $result = array( + "msg" => "ok", + "total" => 1, + "records" => $prm + ); + + $this->sys_ok($result); + exit; + } + function checkpatientbynoid($noKtp, $pid, $corporateid) + { + // $prm = $this->sys_input; + // $userid = $this->sys_user["M_UserID"]; + // if (!$this->isLogin) { + // $this->sys_error("Invalid Token"); + // exit; + // } + // $noKtp = $prm['nik']; + // $pid = $prm['pid']; + // $corporateid = $prm['corporateid']; + $sql = "SELECT * FROM m_patient + WHERE M_PatientIdentifierCode = 'NNIDN' + AND M_PatientIdentifierValue = $noKtp + AND M_PatientIsActive = 'Y' + AND M_PatientID <> $pid + AND M_PatientRegisteredByCorporateID = $corporateid"; + $qry = $this->db_onedev->query($sql); + if (!$qry) { + $message = $this->db_onedev->error(); + $this->sys_error($message); + $message['qry'] = $this->db_onedev->last_query(); + exit; + } + $data = $qry->result_array(); + if (count($data) > 0) { + $rst = [ + + "msg" => "errpatient", + "msg_dialog" => "Pasien memiliki NIK sama dengan pasien berikut", + "data" => $data, + "total" => count($data) + ]; + $this->sys_ok($rst); + exit; + } + } + function checkpatientbynamedob($name, $dob, $pid, $corporateid) + { + // $prm = $this->sys_input; + // $userid = $this->sys_user["M_UserID"]; + // if (!$this->isLogin) { + // $this->sys_error("Invalid Token"); + // exit; + // } + // $name = $prm['name']; + // $dob = $prm['dob']; + // $pid = $prm['pid']; + // $corporateid = $prm['corporateid']; + $sql = "SELECT * FROM m_patient + WHERE LOWER(M_PatientName)=LOWER(?) + AND M_PatientDOB= '{$dob}' + AND M_PatientIsActive = 'Y' + AND M_PatientID <> $pid + AND M_PatientRegisteredByCorporateID = $corporateid"; + $qry = $this->db_onedev->query($sql, [$name]); + if (!$qry) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + // echo $sql; + $data = $qry->result_array(); + if (count($data) > 0) { + $rst = [ + "msg" => "errpatient", + "msg_dialog" => "Pasien memiliki Nama dan Tanggal Lahir sama dengan pasien berikut", + + "data" => $data, + "total" => count($data) + ]; + $this->sys_ok($rst); + exit; + } + } + function checkpatientbynip($nip, $pid, $corporateid) + { + // $prm = $this->sys_input; + // $userid = $this->sys_user["M_UserID"]; + // if (!$this->isLogin) { + // $this->sys_error("Invalid Token"); + // exit; + // } + // $name = $prm['name']; + // $dob = $prm['dob']; + // $pid = $prm['pid']; + // $corporateid = $prm['corporateid']; + $sql = "SELECT * FROM m_patient + WHERE M_PatientNIP= '{$nip}' + AND M_PatientIsActive = 'Y' + AND M_PatientID <> $pid + AND M_PatientRegisteredByCorporateID = $corporateid"; + $qry = $this->db_onedev->query($sql, []); + if (!$qry) { + $message = $this->db_onedev->error(); + $this->sys_error($message); + exit; + } + // echo $sql; + $data = $qry->result_array(); + if (count($data) > 0) { + $rst = [ + "msg" => "errpatient", + "msg_dialog" => "Pasien memiliki NIP sama dengan pasien berikut", + + "data" => $data, + "total" => count($data) + ]; + $this->sys_ok($rst); + exit; + } + } + function getDetailPacketByID() + { + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + + $userid = $this->sys_user["M_UserID"]; + $prm = $this->sys_input; + + $T_PacketID = $prm['T_PacketID']; + + $sql = "SELECT + T_PacketName, + T_PacketSasCode, + pd.T_PacketDetailID, + pd.T_PacketDetailT_PacketID, + pd.T_PacketDetailT_TestID, + pd.T_PacketDetailOriginalPrice, + pd.T_PacketDetailPrice, + pd.T_PacketDetailIsActive, + pd.T_PacketDetailCreated, + pd.T_PacketDetailLastUpdated, + pd.T_PacketDetailPriceAmount, + pd.T_PacketDetailPriceDisc, + pd.T_PacketDetailPriceDiscRp, + pd.T_PacketDetailPriceSubTotal, + t.T_TestID, + t.T_TestNat_GroupID, + t.T_TestNat_SubgroupID, + t.T_TestParentT_TestID, + t.T_TestCode, + t.T_TestSasCode, + t.T_TestName, + t.T_TestShortName, + t.T_TestShortNameBarcode, + t.T_TestWorklistName, + t.T_TestNat_TestID, + t.T_TestRequirement, + t.T_TestIsParent, + t.T_TestFontSize, + t.T_TestFontColor, + t.T_TestIsBold, + t.T_TestIsItalic, + t.T_TestT_SampleTypeID, + t.T_TestResultPosition, + t.T_TestNormalValue, + t.T_TestFlagGluc, + t.T_TestIsQuantitative, + t.T_TestIsPrintNota, + t.T_TestIsResult, + t.T_TestIsPrintResult, + t.T_TestIsPrice, + t.T_TestForceSell, + t.T_TestIsWorklist, + t.T_TestIsNonLab, + t.T_TestIsDeltaCheck, + t.T_TestIsTrendAnalysis, + t.T_TestLeftMargin, + t.T_TestCreated, + t.T_TestLastUpdated, + t.T_TestIsActive, + t.T_TestMaxDiscount, + t.T_TestFlagLow, + t.T_TestFlagHigh, + t.T_TestUserID, + t.T_TestFlagMCU, + t.T_TestNat_SubSubGroupID, + t.T_TestCreatedUserID, + t.T_TestLastUpdatedUserID, + t.T_TestDeleted, + t.T_TestDeletedUserID + FROM + t_packetdetail as pd + JOIN + t_test as t + ON + pd.T_PacketDetailT_TestID = t.T_TestID + AND t.T_TestIsActive = 'Y' + AND pd.T_PacketDetailIsActive = 'Y' + AND pd.T_PacketDetailT_PacketID = $T_PacketID + JOIN t_packet ON pd.T_PacketDetailT_PacketID = T_PacketID"; + + $qry = $this->db_onedev->query($sql); + if (!$qry) { + $this->sys_error_db("list packet", $this->db_onedev); + exit; + } + + $rows = $qry->result_array(); + $result = array( + // "total" => $tot_page, + "records" => $rows, + ); + $this->sys_ok($result); + exit; + } + function getpreregistermenu() + { + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + + $sql = "SELECT S_MenuUrl as url FROM s_menu + WHERE S_MenuName = 'Registration (Preregister)' LIMIT 1"; + $qry = $this->db_onedev->query($sql); + if (!$qry) { + $message = $this->db_onedev->error(); + $this->sys_error($message); + exit; + } + $data = $qry->row(); + + $this->sys_ok($data); + exit; + } + function lookup_barcodes() + { + try { + $prm = $this->sys_input; + //# cek token valid + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $sql = "SELECT T_BarcodeLabID as id, + 'barcode' as type, + T_SampleTypeID, + T_BarcodeLabID, + T_BarcodeLabBarcode, + T_BarcodeLabT_OrderHeaderID as orderid, + T_BarcodeLabCounter, + T_SampleTypeName, + 'N' as chex + FROM t_barcodelab + JOIN t_sampletype ON T_BarcodeLabT_SampleTypeID = T_SampleTypeID + JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID + JOIN t_samplestation ON T_BahanT_SampleStationID = T_SampleStationID AND T_SampleStationIsNonLab = '' + WHERE + T_BarcodeLabT_OrderHeaderID = {$prm['T_OrderHeaderID']} AND T_BarcodeLabIsActive = 'Y' + UNION + SELECT T_TestID as id, + 'nonlab' as type, + T_OrderDetailID as T_SampleTypeID, + '' as T_BarcodeLabID, + '-' as T_BarcodeLabBarcode, + T_OrderHeaderID as order_id, + 0 as T_BarcodeLabCounter, + T_TestName as T_SampleTypeName, + 'N' as chex + 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 AND T_TestIsResult = 'Y' + JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID + JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultName <> 'lab' + WHERE + T_OrderHeaderID = {$prm['T_OrderHeaderID']} + GROUP BY T_TestID + + "; + //echo $sql; + $query = $this->db_onedev->query($sql); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $rows = $query->result_array(); + $rst = []; + if ($rows) { + foreach ($rows as $k => $v) { + $v['chex'] = false; + // if ($v['chex'] == 'N') + // $rows[$k]['chex'] = false; + // else + // $rows[$k]['chex'] = true; + $v['count'] = 1; + $rst[] = $v; + // if ($v['type'] == 'barcode' && $v['T_SampleTypeID'] == 48) { + // $rst[] = $v; + // } + } + } + $result = array("total" => 0, "records" => $rst); + $this->sys_ok($result); + } catch (Exception $exc) { + $message = $exc->getMessage(); + $this->sys_error($message); + } + } + function getcorporate() + { + try { + $prm = $this->sys_input; + //# cek token valid + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $code = $prm['code']; + + + $sql = "SELECT + CorporateID, + CorporateCode, + CorporateName, + 'Y' AS CorporateDefault + FROM corporate + WHERE (CorporateID = ?);"; + //echo $sql; + $query = $this->db_onedev->query($sql, [$code]); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $corporate = $query->row_array(); + $sql = "SELECT + CorporateID, + CorporateCode, + CorporateName, + 'N' AS CorporateDefault + FROM corporate_relation + JOIN corporate ON CorporateRelationCorporateRelationID = CorporateID + AND CorporateRelationIsActive = 'Y' + AND CorporateRelationCorporateID = ?"; + //echo $sql; + $query = $this->db_onedev->query($sql, [$corporate['CorporateID']]); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $relation = $query->result_array(); + // $rows = [$corporate,...$relation] + $rows = [$corporate]; + for ($i = 0; $i < count($relation); $i++) { + array_push($rows, $relation[$i]); + } + $result = array("records" => $rows); + $this->sys_ok($result); + } catch (Exception $exc) { + $message = $exc->getMessage(); + $this->sys_error($message); + } + } + function search_patient_form() + { + $prm = $this->sys_input; + $name = $prm['name']; + $dob = $prm['dob']; + $nik = $prm['nik']; + $ktp = $prm['ktp']; + $add_where = ''; + // M_PatientIdentifierCode varchar(50) [NNIDN] + // M_PatientIdentifierSystem varchar(100) [http://terminology.hl7.org/CodeSystem/v2-0203] + // M_PatientIdentifierCode varchar(50) [NNIDN] + if ($nik != '') { + $add_where .= " AND M_PatientNIP = '{$nik}'"; + } + if ($ktp != '') { + $add_where .= " AND M_PatientIdentifierValue = '{$nik}' AND M_PatientIdentifierCode = 'NNIDN'"; + } + $setup = $prm['setup']; + $join_company = ""; + if (isset($prm['company']) && intval($prm['company']) > 0) { + $join_company = "JOIN t_orderheader ON T_OrderHeaderM_PatientID = M_PatientID AND + T_OrderHeaderIsActive = 'Y' AND + T_OrderHeaderM_CompanyID = {$prm['company']}"; + } + + $sql = "SELECT COUNT(*) as total + FROM ( + SELECT * + FROM m_patient + $join_company + LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID + WHERE + M_PatientIsActive = 'Y' + AND M_PatientRegisteredByCorporateID = {$setup['Mgm_McuCorporateID']} + AND M_PatientName LIKE CONCAT('%',?,'%') AND + (DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') LIKE '%{$dob}%' and M_PatientDOB IS NOT NULL) + {$add_where} + GROUP BY M_PatientID + ) x + "; + //echo $sql; + $qry = $this->db_onedev->query($sql, [$name]); + if (!$qry) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $countx = $qry->row()->total; + $sql = "SELECT *, DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') as dob_ina, + M_PatientNoReg as Mcu_PreregisterPatientsPID, + M_PatientIdentifierValue as Mcu_PreregisterPatientsKTP, + M_PatientID as Mcu_PreregisterPatientsM_PatientID, + M_TitleID as Mcu_PreregisterPatientsM_TitleID, + M_PatientName as Mcu_PreregisterPatientsPatientName, + M_PatientGender as Mcu_PreregisterPatientsGender, + M_PatientDOB as Mcu_PreregisterPatientsDOB, + IFNULL(M_PatientReligionCode,0) as Mcu_PreregisterPatientsReligion, + M_PatientEmail as Mcu_PreregisterDetailsEmail, + M_PatientHP as Mcu_PreregisterDetailsHp, + M_PatientEmail as Mcu_PreregisterPatientsEmail, + M_PatientHP as Mcu_PreregisterPatientsHp, + M_PatientPosisi as Mcu_PreregisterPatientsPosisi, + M_PatientDivisi as Mcu_PreregisterPatientsDivisi, + M_PatientJob as Mcu_PreregisterPatientsJob, + M_PatientDepartement as Mcu_PreregisterPatientsDepartment + FROM m_patient + $join_company + LEFT join m_title on M_PatientM_TitleID = M_TitleID + WHERE + M_PatientRegisteredByCorporateID = {$setup['Mgm_McuCorporateID']} + AND M_PatientIsActive = 'Y' AND + M_PatientName LIKE CONCAT('%',?,'%') AND + (DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') LIKE '%{$dob}%' and M_PatientDOB IS NOT NULL) + {$add_where} + GROUP BY M_PatientID + LIMIT 10 OFFSET 0 + "; + + //echo $sql; + $qry = $this->db_onedev->query($sql, [$name]); + if (!$qry) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $rows = $qry->result_array(); + $result = array( + "total" => $countx, + "records" => $rows + ); + $this->sys_ok($result); + exit; + } +}