Initial import

This commit is contained in:
sas.fajri
2026-04-27 10:26:26 +07:00
commit bf9b9097ee
2388 changed files with 3002242 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,198 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Barcode extends CI_Controller
{
function formulir() {
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId= "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',M_PatientName) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName) as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0 ) $data = $rows[0];
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function so_group() {
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId= "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',M_PatientName) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName separator ', ') as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId and T_TestIsResult ='y' and T_TestIsNonLab <> ''
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0 ) $data = $rows[0];
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
/*
//+ "^FT5,200^A0N,23,24^FH\^FD"+ data.city+"^FS"+ "\n"
//+ "^FT5,175^A0N,23,24^FH\^FD" + data.address + "^FS"+ "\n"
//+ "^FT3,150^A0N,28,28^FH\^FD"+ data.title+" "+ data.patientName +"^FS"+ "\n"
//+ "^BY3,3,45^FT22,70^BCN,,Y,N"+ "\n"
//+ "^FD>;" + xbarcodeId + "^FS"+ "\n"
//+ "^FT5,225^A0N,23,24^FH\^FD"+ data.patienttype +"^FS"+ "\n"
//+ "^PQ1,0,1,Y^XZ"+ "\n"
*/
function so() {
$orderId= $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',M_PatientName) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
T_TestName as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID = $orderId
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function pk() {
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
T_BarcodeLabBarcode ,
concat(M_TitleName, ' ', M_PatientName) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y %T') T_OrderHeaderDate,
case
when M_SexCode = 'L' then 'M'
when M_SexCode = 'p' then 'F'
else M_SexCode
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_sex on M_PatientM_SexID = M_SexID
join m_title on M_PatientM_TitleID = M_TitleID
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
}
?>

View File

@@ -0,0 +1,586 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Barcode extends CI_Controller
{
function formulir()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IFNULL(M_TitleName,''),'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
'' as city,
'' AS M_DoctorName,
group_concat(distinct T_TestName) as test,
IF(M_PatientGender = 'male','L','P') as sexcode,
CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
where T_OrderHeaderID = {$orderId}
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function so_group()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName separator ', ') as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId and T_TestIsResult ='y' and T_TestIsNonLab <> ''
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
/*
//+ "^FT5,200^A0N,23,24^FH\^FD"+ data.city+"^FS"+ "\n"
//+ "^FT5,175^A0N,23,24^FH\^FD" + data.address + "^FS"+ "\n"
//+ "^FT3,150^A0N,28,28^FH\^FD"+ data.title+" "+ data.patientName +"^FS"+ "\n"
//+ "^BY3,3,45^FT22,70^BCN,,Y,N"+ "\n"
//+ "^FD>;" + xbarcodeId + "^FS"+ "\n"
//+ "^FT5,225^A0N,23,24^FH\^FD"+ data.patienttype +"^FS"+ "\n"
//+ "^PQ1,0,1,Y^XZ"+ "\n"
*/
function so()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderHeaderID = $orderId
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function fix_double_order($order_id){
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT
GROUP_CONCAT(T_OrderDetailOrderID) as unik_id,
T_OrderDetailOrderT_OrderHeaderID,
T_OrderDetailOrderT_TestID,
T_OrderDetailOrderT_PacketID,
COUNT(*) as jumlah_duplikat
FROM
t_orderdetailorder
WHERE
T_OrderDetailOrderT_OrderHeaderID = ? AND
T_OrderDetailOrderIsActive = 'Y'
GROUP BY
T_OrderDetailOrderT_OrderHeaderID,
T_OrderDetailOrderT_TestID,
T_OrderDetailOrderT_PacketID
HAVING
COUNT(*) > 1";
$query = $this->db_onedev->query($sql,array($order_id));
//echo $this->db_onedev->last_query();
$rows = $query->result_array();
if(count($rows) == 0) return true;
foreach($rows as $row){
$a_id = explode(",",$row['unik_id']);
$keep_id = $a_id[0];
$delete_id = implode(",",array_slice($a_id,1));
$sql = "UPDATE t_orderdetailorder SET T_OrderDetailOrderIsActive = 'N',
T_OrderDetailOrderDeleted = NOW(),
T_OrderDetailOrderDeletedUserID = 51512
WHERE
T_OrderDetailOrderID IN ($delete_id) ";
$this->db_onedev->query($sql);
$sql = "UPDATE t_orderdetail SET T_OrderDetailIsActive = 'N',
T_OrderDetailDeleted = NOW(),
T_OrderDetailDeletedUserID = 51512
WHERE
T_OrderDetailT_OrderDetailOrderID IN ($delete_id) ";
$this->db_onedev->query($sql);
}
return true;
}
function sov1()
{
$this->db_onedev = $this->load->database("onedev", true);
$orderId = $this->input->get("orderId");
$orderdetail_id = 0;
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$a_bcodes = explode(",", $orderId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
$orderdetail_id = $b;
}
$sql = "SELECT *
FROM t_orderdetail
WHERE
T_OrderDetailID = ? ";
$query = $this->db_onedev->query($sql,array($orderdetail_id));
$dt_order_detail = $query->result_array();
$header_id = $dt_order_detail[0]['T_OrderDetailT_OrderHeaderID'];
$this->fix_double_order($header_id);
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype,M_PatientNIP
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID IN ($s_bcode)
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$lstQry = $this->db_onedev->last_query();
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"qry" => $lstQry,
"rows" => $rows
));
}
function duplicateDataByOrderId($prm, $data)
{
// Hitung jumlah kemunculan setiap elemen dalam array prm
$orderCounts = array_count_values($prm);
// Array baru untuk menyimpan hasil duplikasi
$result = [];
// Loop melalui setiap objek di data JSON
foreach ($data as $item) {
$orderId = $item['T_OrderDetailID'];
// Jika ada dalam orderCounts, duplikasi data sesuai jumlah kemunculan
if (isset($orderCounts[$orderId])) {
for ($i = 0; $i < $orderCounts[$orderId]; $i++) {
$result[] = $item; // Tambahkan data ke hasil
}
} else {
$result[] = $item; // Jika tidak ada dalam orderCounts, tambahkan satu kali
}
}
return $result;
}
function sov2()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$a_bcodes = explode(",", $orderId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "SELECT
T_OrderDetailID,
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID IN ($s_bcode)
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
// echo $sql;
$lstQry = $this->db_onedev->last_query();
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
$updatedData = $this->duplicateDataByOrderId($a_bcodes, $rows);
echo json_encode(array(
"status" => "OK",
"message" => "",
"a_bcodes" => $a_bcodes,
"lstQry" => $lstQry,
"coba" => array_count_values($a_bcodes),
"rows" => $updatedData
));
}
function so_label()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat(DATE_FORMAT(M_PatientDOB, '%d/%m/%Y') , ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexName , ', ',ifnull(M_ReligionName,'')) as tgllahir,
(SELECT concat(M_PatientAddressDescription , ' ' , M_KelurahanName)
from m_patientaddress AS p
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_PatientHP,
concat(T_OrderHeaderLabNumber,' / ', DATE_FORMAT(T_OrderHeaderDate, '%d/%m/%Y ')) as lab,
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg, M_CompanyName as patienttype,
M_PatientPJ ,
M_PatientLocation ,
M_PatientIDNumber
from t_orderheader
left join m_patient on T_OrderHeaderM_PatientID = M_PatientID
left join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function formulir_khusus()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat( ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexCode ) as tgllahir,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName) as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function pk()
{
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
left(T_BarcodeLabBarcode ,13) T_BarcodeLabBarcode ,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
if(M_PatientGender = 'male' , 'L' , 'P') as Gender,
CorporateName,M_PatientNIP,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y') T_OrderHeaderDate,
case
when M_PatientGender = 'male' then 'M'
when M_PatientGender = 'female' then 'F'
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate on T_OrderHeaderCorporateID = CorporateID and CorporateIsActive = 'Y'
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
$rst = [];
foreach ($rows as $key => $value) {
$rst[] = $value;
if ($value['T_SampleTypeSuffix'] == 'UK') {
$rst[] = $value;
}
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rst
));
}
function duplicateDataByBarcode($prm, $data)
{
// Hitung jumlah kemunculan setiap elemen dalam array prm
$barcodeCounts = array_count_values($prm);
// Array baru untuk menyimpan hasil duplikasi
$result = [];
// Loop melalui setiap objek di data JSON
foreach ($data as $item) {
$barcode = $item['Full_T_BarcodeLabBarcode'];
// Jika ada dalam barcodeCounts, duplikasi data sesuai jumlah kemunculan
if (isset($barcodeCounts[$barcode])) { // Menambahkan '1' karena sesuai contoh data di prm
for ($i = 0; $i < $barcodeCounts[$barcode]; $i++) {
$result[] = $item; // Tambahkan data ke hasil
}
} else {
$result[] = $item; // Jika tidak ada dalam barcodeCounts, tambahkan satu kali
}
}
return $result;
}
function pkv2()
{
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "SELECT
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
left(T_BarcodeLabBarcode ,13) T_BarcodeLabBarcode ,
T_BarcodeLabBarcode Full_T_BarcodeLabBarcode ,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
if(M_PatientGender = 'male' , 'L' , 'P') as Gender,
CorporateName,M_PatientNIP,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y') T_OrderHeaderDate,
case
when M_PatientGender = 'male' then 'M'
when M_PatientGender = 'female' then 'F'
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate on T_OrderHeaderCorporateID = CorporateID and CorporateIsActive = 'Y'
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
$rst = [];
foreach ($rows as $key => $value) {
$rst[] = $value;
// if ($value['T_SampleTypeSuffix'] == 'UK') {
// $rst[] = $value;
// }
}
$updatedData = $this->duplicateDataByBarcode($a_bcodes, $rst);
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $updatedData
));
}
}

View File

@@ -0,0 +1,362 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Barcode extends CI_Controller
{
function formulir()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IFNULL(M_TitleName,''),'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
'' as city,
'' AS M_DoctorName,
group_concat(distinct T_TestName) as test,
IF(M_PatientGender = 'male','L','P') as sexcode,
CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
where T_OrderHeaderID = {$orderId}
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function so_group()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName separator ', ') as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId and T_TestIsResult ='y' and T_TestIsNonLab <> ''
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
/*
//+ "^FT5,200^A0N,23,24^FH\^FD"+ data.city+"^FS"+ "\n"
//+ "^FT5,175^A0N,23,24^FH\^FD" + data.address + "^FS"+ "\n"
//+ "^FT3,150^A0N,28,28^FH\^FD"+ data.title+" "+ data.patientName +"^FS"+ "\n"
//+ "^BY3,3,45^FT22,70^BCN,,Y,N"+ "\n"
//+ "^FD>;" + xbarcodeId + "^FS"+ "\n"
//+ "^FT5,225^A0N,23,24^FH\^FD"+ data.patienttype +"^FS"+ "\n"
//+ "^PQ1,0,1,Y^XZ"+ "\n"
*/
function so()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderHeaderID = $orderId
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function sov1()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$a_bcodes = explode(",", $orderId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID IN ($s_bcode)
join t_test on T_OrderDetailT_TestID = T_TestID
JOIN nonlab_barcode ON T_TestNat_TestID = Nonlab_BarcodeNat_TestID AND Nonlab_BarcodeIsActive = 'Y'
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
GROUP BY Nonlab_BarcodeID
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function so_label()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat(DATE_FORMAT(M_PatientDOB, '%d/%m/%Y') , ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexName , ', ',ifnull(M_ReligionName,'')) as tgllahir,
(SELECT concat(M_PatientAddressDescription , ' ' , M_KelurahanName)
from m_patientaddress AS p
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_PatientHP,
concat(T_OrderHeaderLabNumber,' / ', DATE_FORMAT(T_OrderHeaderDate, '%d/%m/%Y ')) as lab,
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg, M_CompanyName as patienttype,
M_PatientPJ ,
M_PatientLocation ,
M_PatientIDNumber
from t_orderheader
left join m_patient on T_OrderHeaderM_PatientID = M_PatientID
left join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function formulir_khusus()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat( ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexCode ) as tgllahir,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName) as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function pk()
{
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
left(T_BarcodeLabBarcode ,13) T_BarcodeLabBarcode ,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
if(M_PatientGender = 'male' , 'L' , 'P') as Gender,
CorporateName,M_PatientNIP,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y') T_OrderHeaderDate,
case
when M_PatientGender = 'male' then 'M'
when M_PatientGender = 'female' then 'F'
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate on T_OrderHeaderCorporateID = CorporateID and CorporateIsActive = 'Y'
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
$rst = [];
foreach ($rows as $key => $value) {
$rst[] = $value;
if($value['T_SampleTypeSuffix'] == 'UK'){
$rst[] = $value;
}
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rst
));
}
}

View File

@@ -0,0 +1,355 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Barcode extends CI_Controller
{
function formulir()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IFNULL(M_TitleName,''),'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
'' as city,
'' AS M_DoctorName,
group_concat(distinct T_TestName) as test,
IF(M_PatientGender = 'male','L','P') as sexcode,
CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
where T_OrderHeaderID = {$orderId}
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function so_group()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName separator ', ') as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId and T_TestIsResult ='y' and T_TestIsNonLab <> ''
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
/*
//+ "^FT5,200^A0N,23,24^FH\^FD"+ data.city+"^FS"+ "\n"
//+ "^FT5,175^A0N,23,24^FH\^FD" + data.address + "^FS"+ "\n"
//+ "^FT3,150^A0N,28,28^FH\^FD"+ data.title+" "+ data.patientName +"^FS"+ "\n"
//+ "^BY3,3,45^FT22,70^BCN,,Y,N"+ "\n"
//+ "^FD>;" + xbarcodeId + "^FS"+ "\n"
//+ "^FT5,225^A0N,23,24^FH\^FD"+ data.patienttype +"^FS"+ "\n"
//+ "^PQ1,0,1,Y^XZ"+ "\n"
*/
function so()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderHeaderID = $orderId
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function sov1()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$a_bcodes = explode(",", $orderId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID IN ($s_bcode)
join t_test on T_OrderDetailT_TestID = T_TestID
JOIN nonlab_barcode ON T_TestNat_TestID = Nonlab_BarcodeNat_TestID AND Nonlab_BarcodeIsActive = 'Y'
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
GROUP BY Nonlab_BarcodeID
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function so_label()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat(DATE_FORMAT(M_PatientDOB, '%d/%m/%Y') , ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexName , ', ',ifnull(M_ReligionName,'')) as tgllahir,
(SELECT concat(M_PatientAddressDescription , ' ' , M_KelurahanName)
from m_patientaddress AS p
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_PatientHP,
concat(T_OrderHeaderLabNumber,' / ', DATE_FORMAT(T_OrderHeaderDate, '%d/%m/%Y ')) as lab,
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg, M_CompanyName as patienttype,
M_PatientPJ ,
M_PatientLocation ,
M_PatientIDNumber
from t_orderheader
left join m_patient on T_OrderHeaderM_PatientID = M_PatientID
left join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function formulir_khusus()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat( ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexCode ) as tgllahir,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName) as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function pk()
{
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
left(T_BarcodeLabBarcode ,13) T_BarcodeLabBarcode ,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
if(M_PatientGender = 'male' , 'L' , 'P') as Gender,
CorporateName,M_PatientNIP,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y') T_OrderHeaderDate,
case
when M_PatientGender = 'male' then 'M'
when M_PatientGender = 'female' then 'F'
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate on T_OrderHeaderCorporateID = CorporateID and CorporateIsActive = 'Y'
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
}

View File

@@ -0,0 +1,525 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Barcode extends CI_Controller
{
function formulir()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IFNULL(M_TitleName,''),'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
'' as city,
'' AS M_DoctorName,
group_concat(distinct T_TestName) as test,
IF(M_PatientGender = 'male','L','P') as sexcode,
CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
where T_OrderHeaderID = {$orderId}
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function so_group()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName separator ', ') as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId and T_TestIsResult ='y' and T_TestIsNonLab <> ''
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
/*
//+ "^FT5,200^A0N,23,24^FH\^FD"+ data.city+"^FS"+ "\n"
//+ "^FT5,175^A0N,23,24^FH\^FD" + data.address + "^FS"+ "\n"
//+ "^FT3,150^A0N,28,28^FH\^FD"+ data.title+" "+ data.patientName +"^FS"+ "\n"
//+ "^BY3,3,45^FT22,70^BCN,,Y,N"+ "\n"
//+ "^FD>;" + xbarcodeId + "^FS"+ "\n"
//+ "^FT5,225^A0N,23,24^FH\^FD"+ data.patienttype +"^FS"+ "\n"
//+ "^PQ1,0,1,Y^XZ"+ "\n"
*/
function so()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderHeaderID = $orderId
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function sov1()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$a_bcodes = explode(",", $orderId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype,M_PatientNIP
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID IN ($s_bcode)
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
//echo $sql;
$lstQry = $this->db_onedev->last_query();
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"qry" => $lstQry,
"rows" => $rows
));
}
function duplicateDataByOrderId($prm, $data)
{
// Hitung jumlah kemunculan setiap elemen dalam array prm
$orderCounts = array_count_values($prm);
// Array baru untuk menyimpan hasil duplikasi
$result = [];
// Loop melalui setiap objek di data JSON
foreach ($data as $item) {
$orderId = $item['T_OrderDetailID'];
// Jika ada dalam orderCounts, duplikasi data sesuai jumlah kemunculan
if (isset($orderCounts[$orderId])) {
for ($i = 0; $i < $orderCounts[$orderId]; $i++) {
$result[] = $item; // Tambahkan data ke hasil
}
} else {
$result[] = $item; // Jika tidak ada dalam orderCounts, tambahkan satu kali
}
}
return $result;
}
function sov2()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$a_bcodes = explode(",", $orderId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "SELECT
T_OrderDetailID,
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(IF(M_TitleName IS NULL,'',CONCAT(M_TitleName,'. ')),ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
M_PatientAddress AS alamat,
M_PatientAddressCity as city,
'' AS M_DoctorName,
T_TestName as test,
IF(M_PatientGender = 'male','L','P') as sex_code, CorporateName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID IN ($s_bcode)
join t_test on T_OrderDetailT_TestID = T_TestID
left join m_title on M_PatientM_TitleID = M_TitleID
left join corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
";
$query = $this->db_onedev->query($sql);
// echo $sql;
$lstQry = $this->db_onedev->last_query();
$rows = $query->result_array();
foreach ($rows as $key => $value) {
$oldage = explode("tahun", $value['age']);
$rows[$key]['age'] = $oldage[0] . ' Tahun';
}
$updatedData = $this->duplicateDataByOrderId($a_bcodes, $rows);
echo json_encode(array(
"status" => "OK",
"message" => "",
"a_bcodes" => $a_bcodes,
"lstQry" => $lstQry,
"coba" => array_count_values($a_bcodes),
"rows" => $updatedData
));
}
function so_label()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat(DATE_FORMAT(M_PatientDOB, '%d/%m/%Y') , ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexName , ', ',ifnull(M_ReligionName,'')) as tgllahir,
(SELECT concat(M_PatientAddressDescription , ' ' , M_KelurahanName)
from m_patientaddress AS p
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_PatientHP,
concat(T_OrderHeaderLabNumber,' / ', DATE_FORMAT(T_OrderHeaderDate, '%d/%m/%Y ')) as lab,
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg, M_CompanyName as patienttype,
M_PatientPJ ,
M_PatientLocation ,
M_PatientIDNumber
from t_orderheader
left join m_patient on T_OrderHeaderM_PatientID = M_PatientID
left join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function formulir_khusus()
{
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
concat(M_PatientKedudukan ,' / ',M_PatientNIK ) as nrp,
M_PatientJob,
M_PatientJabatan ,
concat( ' (',TIMESTAMPDIFF(YEAR, M_PatientDOB, CURDATE()) ,' th) ', M_SexCode ) as tgllahir,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName) as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_religion on M_PatientM_ReligionID = M_ReligionID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0) $data = $rows[0];
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function pk()
{
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
left(T_BarcodeLabBarcode ,13) T_BarcodeLabBarcode ,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
if(M_PatientGender = 'male' , 'L' , 'P') as Gender,
CorporateName,M_PatientNIP,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y') T_OrderHeaderDate,
case
when M_PatientGender = 'male' then 'M'
when M_PatientGender = 'female' then 'F'
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate on T_OrderHeaderCorporateID = CorporateID and CorporateIsActive = 'Y'
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
$rst = [];
foreach ($rows as $key => $value) {
$rst[] = $value;
if ($value['T_SampleTypeSuffix'] == 'UK') {
$rst[] = $value;
}
}
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $rst
));
}
function duplicateDataByBarcode($prm, $data)
{
// Hitung jumlah kemunculan setiap elemen dalam array prm
$barcodeCounts = array_count_values($prm);
// Array baru untuk menyimpan hasil duplikasi
$result = [];
// Loop melalui setiap objek di data JSON
foreach ($data as $item) {
$barcode = $item['Full_T_BarcodeLabBarcode'];
// Jika ada dalam barcodeCounts, duplikasi data sesuai jumlah kemunculan
if (isset($barcodeCounts[$barcode])) { // Menambahkan '1' karena sesuai contoh data di prm
for ($i = 0; $i < $barcodeCounts[$barcode]; $i++) {
$result[] = $item; // Tambahkan data ke hasil
}
} else {
$result[] = $item; // Jika tidak ada dalam barcodeCounts, tambahkan satu kali
}
}
return $result;
}
function pkv2()
{
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach ($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "SELECT
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
left(T_BarcodeLabBarcode ,13) T_BarcodeLabBarcode ,
T_BarcodeLabBarcode Full_T_BarcodeLabBarcode ,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
if(M_PatientGender = 'male' , 'L' , 'P') as Gender,
CorporateName,M_PatientNIP,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y') T_OrderHeaderDate,
case
when M_PatientGender = 'male' then 'M'
when M_PatientGender = 'female' then 'F'
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
left join corporate on T_OrderHeaderCorporateID = CorporateID and CorporateIsActive = 'Y'
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
//echo $sql;
$rows = $query->result_array();
$rst = [];
foreach ($rows as $key => $value) {
$rst[] = $value;
// if ($value['T_SampleTypeSuffix'] == 'UK') {
// $rst[] = $value;
// }
}
$updatedData = $this->duplicateDataByBarcode($a_bcodes, $rst);
echo json_encode(array(
"status" => "OK",
"message" => "",
"rows" => $updatedData
));
}
}

View File

@@ -0,0 +1,136 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Barcode extends CI_Controller
{
function so_group() {
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId= "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',M_PatientName) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName) as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId and T_TestIsResult ='y' and T_TestIsNonLab <> ''
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0 ) $data = $rows[0];
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
/*
//+ "^FT5,200^A0N,23,24^FH\^FD"+ data.city+"^FS"+ "\n"
//+ "^FT5,175^A0N,23,24^FH\^FD" + data.address + "^FS"+ "\n"
//+ "^FT3,150^A0N,28,28^FH\^FD"+ data.title+" "+ data.patientName +"^FS"+ "\n"
//+ "^BY3,3,45^FT22,70^BCN,,Y,N"+ "\n"
//+ "^FD>;" + xbarcodeId + "^FS"+ "\n"
//+ "^FT5,225^A0N,23,24^FH\^FD"+ data.patienttype +"^FS"+ "\n"
//+ "^PQ1,0,1,Y^XZ"+ "\n"
*/
function so() {
$orderId= $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',M_PatientName) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
T_TestName as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID = $orderId
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function pk() {
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
T_OrderHeaderLabNumber , T_SampleTypeName, T_BarcodeLabBarcode ,
concat(M_TitleName, ' ', M_PatientName) M_PatientName
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_title on M_PatientM_TitleID = M_TitleID
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
}
?>

View File

@@ -0,0 +1,200 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Barcode extends CI_Controller
{
function formulir() {
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId= "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
T_OrderHeaderLabNumber as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName) as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
join t_test on T_OrderDetailT_TestID = T_TestID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0 ) $data = $rows[0];
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
function so_group() {
$orderId = $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId= "'0'";
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
group_concat(distinct T_TestName separator ', ') as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID
where T_OrderHeaderID = $orderId and T_TestIsResult ='y' and T_TestIsNonLab <> ''
group by T_OrderHeaderID ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
if (count($rows) > 0 ) $data = $rows[0];
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $data
));
}
/*
//+ "^FT5,200^A0N,23,24^FH\^FD"+ data.city+"^FS"+ "\n"
//+ "^FT5,175^A0N,23,24^FH\^FD" + data.address + "^FS"+ "\n"
//+ "^FT3,150^A0N,28,28^FH\^FD"+ data.title+" "+ data.patientName +"^FS"+ "\n"
//+ "^BY3,3,45^FT22,70^BCN,,Y,N"+ "\n"
//+ "^FD>;" + xbarcodeId + "^FS"+ "\n"
//+ "^FT5,225^A0N,23,24^FH\^FD"+ data.patienttype +"^FS"+ "\n"
//+ "^PQ1,0,1,Y^XZ"+ "\n"
*/
function so() {
$orderId= $this->input->get("orderId");
$this->db_onedev = $this->load->database("onedev", true);
if ($orderId == "") $orderId = "'0'";
// orderId = order detail id
$sql = "select
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y ')as datereg,
fn_lookup_external(T_OrderHeaderLabNumber,'L') as nolab,
M_PatientNoReg as noreg,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) AS M_PatientName,
T_OrderHeaderM_PatientAge as age,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
(SELECT M_PatientAddressDescription from m_patientaddress AS p
WHERE M_PatientAddressM_PatientID = M_PatientID
ORDER BY M_PatientAddressM_PatientID
LIMIT 1) AS alamat,
M_CityName as city,
CONCAT(M_DoctorPrefix,' ',M_DoctorName,' ',M_DoctorSufix) AS M_DoctorName,
T_TestName as test ,
M_SexCode as sexcode, M_CompanyName as patienttype
from t_orderheader
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_orderdetail on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailID = $orderId
join t_test on T_OrderDetailT_TestID = T_TestID
join so_resultentry on T_OrderDetailID = So_ResultEntryT_OrderDetailID
join m_title on M_PatientM_TitleID = M_TitleID
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
left join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
left join m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y'
left join m_patientaddress on M_PatientAddressM_PatientID = M_PatientID
left join m_kelurahan on M_PatientAddressM_KelurahanID = M_KelurahanID
left join m_district on M_KelurahanM_DistrictID = M_DistrictID
left join m_city on M_DistrictM_CityID = M_CityID";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
function pk() {
$barcodeId = $this->input->get("barcodeId");
$this->db_onedev = $this->load->database("onedev", true);
if ($barcodeId == "") $barcodeId = "'0'";
$a_bcodes = explode(",", $barcodeId);
$s_bcode = "";
foreach($a_bcodes as $b) {
if ($s_bcode != "") $s_bcode .= ",";
$s_bcode .= "'$b'";
}
$sql = "select
RIGHT(T_OrderHeaderLabNumber,7 ) T_OrderHeaderLabNumber ,
T_OrderHeaderLabNumber Full_T_OrderHeaderLabNumber,
T_SampleTypeName,
left(T_BarcodeLabBarcode ,12) T_BarcodeLabBarcode ,
CONCAT(M_TitleName,'. ',ifnull(M_PatientPrefix,'') , ' ' ,M_PatientName,' ' , ifnull(M_PatientSuffix,'')) M_PatientName,
M_PatientNoReg,
T_OrderHeaderM_PatientAge,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
DATE_FORMAT(T_OrderHeaderDate,'%d/%m/%Y') T_OrderHeaderDate,
case
when M_SexCode = 'L' then 'M'
when M_SexCode = 'p' then 'F'
else M_SexCode
end Sex,
T_SampleTypeSuffix
from t_barcodelab
join t_sampletype on T_BarcodeLabT_SampleTypeID = T_SampleTypeID
join t_orderheader on T_BarcodeLabT_OrderHeaderID = T_OrderHeaderID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_sex on M_PatientM_SexID = M_SexID
join m_title on M_PatientM_TitleID = M_TitleID
where T_BarcodeLabBarcode in ( $s_bcode ) ";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
echo json_encode( array(
"status" => "OK",
"message" => "",
"rows" => $rows
));
}
}
?>

View File

@@ -0,0 +1,16 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class Bc extends MY_Controller
{
function index() {
echo "API";
}
function test() {
$this->broadcast("email-done");
echo "BC : email-done";
//echo file_get_contents('http://127.0.0.1:9090/broadcast/' . $prm);
}
}

View File

@@ -0,0 +1,13 @@
<?php
class Calc extends CI_Controller
{
function index() {
$id = 946;
echo "<pre> $rows";
}
function auto($id) {
$this->load->library("Resultcalc");
$rows = $this->resultcalc->auto($id);
echo "<pre> $rows";
}
}

View File

@@ -0,0 +1,72 @@
<?php
class Checkfolderexist extends MY_Controller
{
function donow(){
$array_db = array(
'192.168.250.201',
'192.168.250.202',
'192.168.250.204',
'192.168.250.203',
'192.168.250.241',
'192.168.250.242',
'192.168.250.243',
'192.168.250.244',
'192.168.250.245',
'192.168.250.246',
'192.168.250.191',
'192.168.250.192',
'192.168.250.181',
'192.168.250.182',
'192.168.250.183',
'192.168.250.184',
'192.168.250.216',
'192.168.250.171',
'192.168.250.172',
'192.168.250.173',
'192.168.250.161',
'192.168.250.162',
'192.168.250.151',
'192.168.250.211',
'192.168.250.221',
'192.168.250.231',
'192.168.250.156',
'192.168.250.141',
'192.168.250.231',
'192.168.250.131',
'192.168.250.236',
'192.168.250.121',
'192.168.250.126',
'192.168.250.136',
'192.168.250.176',
'192.168.250.251',
'192.168.250.252',
'192.168.250.81',
'192.168.250.82',
'192.168.250.85',
'192.168.250.88'
);
foreach($array_db as $k => $v){
$filename = $v."/one-api/mockup/samplestoragev2" ;
// Remote file url
$remoteFile = $filename;
// Open file
$handle = @fopen($remoteFile, 'r');
// Check if file exists
if(!$handle){
echo 'File not found';
}else{
echo 'File exists';
}
}
}
}
?>

View File

@@ -0,0 +1,14 @@
<?php
class Code128 extends CI_Controller
{
function test() {
echo "Test";
}
function index(){
$no = $this->input->get("no");
$generator = new Picqer\Barcode\BarcodeGeneratorJPG();
header('Content-type: image/jpg');
echo $generator->getBarcode($no, $generator::TYPE_CODE_128);
}
}
?>

View File

@@ -0,0 +1,19 @@
<?php
class Configemail extends CI_Controller
{
function config() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = "select * from m_emailconfig where M_EmailConfigIsActive = 'Y'
limit 0,1";
$qry = $this->db_onedev->query($sql);
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
echo json_encode($rows[0]);
exit;
}
}
echo json_encode( array());
}
}

View File

@@ -0,0 +1,80 @@
<?php
class Crorder extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function order() {
$param = $this->sys_input;
$port = $param["port"];
$sql = "select * from cr_order where crOrderIsDownloadedA = 'N' and crOrderIsActive = 'Y'";
switch ($port ) {
case "A":
$sql = "select * from cr_order where crOrderIsDownloadedA = 'N' and crOrderIsActive = 'Y'";
break;
case "B":
$sql = "select * from cr_order where crOrderIsDownloadedB = 'N' and crOrderIsActive = 'Y'";
break;
case "C":
$sql = "select * from cr_order where crOrderIsDownloadedC = 'N' and crOrderIsActive = 'Y'";
break;
}
try {
$qry = $this->db->query($sql);
if($qry) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK" , "order" => $rows)
);
} else {
echo json_encode(
array("status" => "ERR" , "order" => array())
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function update_order() {
$param = $this->sys_input;
$maxID = $param["maxID"];
$port = $param["port"];
$sql = "update cr_order set crOrderIsDownloadedA = 'Y' where crOrderID <= ?
and crOrderIsDownloaded = 'N'";
switch($port) {
case "A":
$sql = "update cr_order set crOrderIsDownloadedA = 'Y' where crOrderID <= ?
and crOrderIsDownloaded = 'N'";
break;
case "B":
$sql = "update cr_order set crOrderIsDownloadedB = 'Y' where crOrderID <= ?
and crOrderIsDownloaded = 'N'";
break;
case "C":
$sql = "update cr_order set crOrderIsDownloadedC = 'Y' where crOrderID <= ?
and crOrderIsDownloaded = 'N'";
break;
}
try {
$qry = $this->db->query($sql, array($maxID));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
}
?>

View File

@@ -0,0 +1,20 @@
<?php
class Emailresult extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function config() {
try {
$sql = "select * from m_emailconfig from M_EmailConfigIsActive = 'Y' and M_EmailConfigType='R'";
$qry = $this->db_one->query($sql);
$rows = $qry->result_array();
echo json_encode(rows);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e.message() )
);
}
}
}

View File

@@ -0,0 +1,20 @@
<?php
class Emailresult extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function config() {
try {
$sql = "select * from m_emailconfig from M_EmailConfigIsActive = 'Y' and M_EmailConfigType='R'";
$qry = $this->db_one->query($sql);
$rows = $qry->result_array();
echo json_encode(rows);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e.message() )
);
}
}
}

View File

@@ -0,0 +1,107 @@
<?php
class Fixprice extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function amount($mouId, $testID,$amount) {
try {
$sql = "update
ss_price_mou
set T_PriceAmount = ? ,
T_PriceSubTotal = ? - T_PriceDisc / 100 * ? ,
T_PriceTotal = ? - T_PriceDisc / 100 * ?
where T_TestID = ? and Ss_PriceMouM_MouID = ? ";
$this->db_one->query($sql, array($amount, $amount,$amount, $amount,$amount,
$testID, $mouId));
echo json_encode( array("status"=>"OK" , "message" => "Updated") );
} catch(Exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
function profile($mouId, $testID) {
try {
$sql = "select T_TestSasCode, T_PriceAmount ,
T_PriceDisc, T_PriceSubTotal, T_PriceTotal
from
ss_price_mou s
join t_test t on s.T_TestID = t.T_TestID
and Ss_PriceMouM_MouID = ?
where t.T_TestID = ? ";
$qry = $this->db_one->query($sql, array($mouId,$testID));
$T_TestSasCode = "";
$T_PriceAmount = 0;
if ( $qry ) {
$rows = $qry->result_array();
$T_TestSasCode = $rows[0]["T_TestSasCode"];
$T_PriceAmount= $rows[0]["T_PriceAmount"];
$T_PriceDisc= $rows[0]["T_PriceDisc"];
$T_PriceSubTotal= $rows[0]["T_PriceSubTotal"];
$T_PriceTotal= $rows[0]["T_PriceTotal"];
}
if ($T_TestSasCode == "" || $T_PriceAmount == 0 ) {
echo json_encode( array("status"=>"ERR", "message"=> "NO Test") );
exit;
}
$T_TestSasCode = substr($T_TestSasCode, 0 , strlen($T_TestSasCode) - 2 );
// cari anak
$sql = "select T_TestID
from t_test
where T_TestSasCode like ?
and length(T_TestSasCode ) = ?
and T_TestIsPrice = 'Y'
and T_TestIsActive = 'Y'";
$qry = $this->db_one->query($sql, array($T_TestSasCode . "%" , strlen($T_TestSasCode) + 2 ) );
$px_childs = array();
if ($qry ) {
$rows = $qry->result_array();
foreach($rows as $r) {
$px_childs[] = $r["T_TestID"];
}
}
$sql = "select s.*
from ss_price_mou s
join t_test t on t.T_TestID = s.T_TestID
where Ss_PriceMouM_MouID = ? and
px_type = 'PXR' and T_TestSasCode = ? ";
$qry = $this->db_one->query($sql,array($mouId,$T_TestSasCode));
if($qry) {
$rows = $qry->result_array();
foreach($rows as $r) {
$id = $r["Ss_PriceMouID"];
$child_test = json_decode($r["child_test"],true);
$new_child_test = array();
$flag_found = false;
foreach($child_test as $c) {
if($c["T_TestID"] == $testID ) {
$c["T_PriceAmount"] = $T_PriceAmount;
$c["T_PriceDisc"] = $T_PriceDisc;
$c["T_PriceSubTotal"] = $T_PriceSubTotal;
$c["T_PriceTotal"] = $T_PriceTotal;
$flag_found = true;
}
if ( in_array($c["T_TestID"], $px_childs ) ) {
$new_child_test[] = $c;
}
}
if ($flag_found) {
$j_child_test = json_encode($new_child_test);
$sql = "update ss_price_mou set
child_test = ? where Ss_PriceMouID = ? ";
$this->db_one->query($sql, array($j_child_test, $id));
}
}
}
echo json_encode( array("status"=>"OK" , "message" => "Updated") );
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
}

View File

@@ -0,0 +1,8 @@
<?php
class Gennoreg extends CI_Controller
{
function index() {
$this->db =
}
}
?>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
<?php
class Photo extends CI_Controller
{
var $base_dir = "/home/one/project/one/one-media/one-photo/patient/";
function test() {
echo "Test";
}
function small(){
$y = $this->input->get("y");
$pid = $this->input->get("pid");
$foto_file = $this->base_dir . "$y" . "/" . $pid . "_thumb.jpg";
header('Content-type: image/jpg');
echo file_get_contents($foto_file);
}
}
?>

View File

@@ -0,0 +1,130 @@
<?php
class Portserver extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function raw() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$data = $param["data"];
$sql = "insert into itf_raw(itf_RawNat_InstrumentID,itf_RawData)
values(?,?)";
$this->db_one->query($sql, array($instrumentID, base64_decode($data)));
echo json_encode(
array("status" => "OK" , "id" => $this->db_one->insert_id() , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
function result() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
if ($instrumentID == 1) {
$sql = "call sp_itf_result_alinity(?)";
} else {
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$sql = "call sp_itf_order(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID));
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK" , "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK" , "order" => array())
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function update_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_update(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function reset_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_reset(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
}
?>

View File

@@ -0,0 +1,146 @@
<?php
class Portserver extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function raw() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$data = $param["data"];
$sql = "insert into itf_raw(itf_RawNat_InstrumentID,itf_RawData)
values(?,?)";
$this->db_one->query($sql, array($instrumentID, base64_decode($data)));
echo json_encode(
array("status" => "OK" , "id" => $this->db_one->insert_id() , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
function result() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
if ($instrumentID == 1) {
$sql = "call sp_itf_result_alinity(?)";
} else {
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
// auto calc
$s_noreg = substr($noreg,0,10);
$sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderLabNumber = ? ";
$qry = $this->db->query($sql,array($s_noreg));
$order_id = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$order_id = $rows[0]["T_OrderHeaderID"];
$this->load->library("Resultcalc");
$this->resultcalc->auto($order_id);
//file_put_contents("/xtmp/re-query.sql",$order_id);
}
}
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$sql = "call sp_itf_order(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID));
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK" , "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK" , "order" => array())
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function update_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_update(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function reset_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_reset(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
}
?>

View File

@@ -0,0 +1,200 @@
<?php
class Portserver extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function raw() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$data = $param["data"];
$sql = "insert into itf_raw(itf_RawNat_InstrumentID,itf_RawData)
values(?,?)";
$this->db_one->query($sql, array($instrumentID, base64_decode($data)));
echo json_encode(
array("status" => "OK" , "id" => $this->db_one->insert_id() , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
function resultv2() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
switch($instrumentID) {
case 1:
$sql = "call sp_itf_result_alinity(?)";
break;
case 27:
$sql = "call sp_itf_result_architect(?)";
break;
default:
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
// auto calc
$s_noreg = substr($noreg,0,10);
$sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderLabNumber = ? ";
$qry = $this->db->query($sql,array($s_noreg));
$order_id = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$order_id = $rows[0]["T_OrderHeaderID"];
$this->load->library("Resultcalc");
$this->resultcalc->auto($order_id);
//file_put_contents("/xtmp/re-query.sql",$order_id);
}
}
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function result() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
if ($instrumentID == 1) {
$sql = "call sp_itf_result_alinity(?)";
} else {
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
// auto calc
$s_noreg = substr($noreg,0,10);
$sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderLabNumber = ? ";
$qry = $this->db->query($sql,array($s_noreg));
$order_id = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$order_id = $rows[0]["T_OrderHeaderID"];
$this->load->library("Resultcalc");
$this->resultcalc->auto($order_id);
//file_put_contents("/xtmp/re-query.sql",$order_id);
}
}
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$sql = "call sp_itf_order(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID));
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK" , "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK" , "order" => array())
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function update_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_update(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function reset_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_reset(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
}
?>

View File

@@ -0,0 +1,130 @@
<?php
class Portserver extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function raw() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$data = $param["data"];
$sql = "insert into itf_raw(itf_RawNat_InstrumentID,itf_RawData)
values(?,?)";
$this->db_one->query($sql, array($instrumentID, base64_decode($data)));
echo json_encode(
array("status" => "OK" , "id" => $this->db_one->insert_id() , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
function result() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
if ($instrumentID == 1) {
$sql = "call sp_itf_result_alinity(?)";
} else {
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$sql = "call sp_itf_order(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID));
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK" , "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK" , "order" => array())
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function update_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_update(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function reset_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_reset(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
}
?>

View File

@@ -0,0 +1,146 @@
<?php
class Portserver extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function raw() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$data = $param["data"];
$sql = "insert into itf_raw(itf_RawNat_InstrumentID,itf_RawData)
values(?,?)";
$this->db_one->query($sql, array($instrumentID, base64_decode($data)));
echo json_encode(
array("status" => "OK" , "id" => $this->db_one->insert_id() , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
function result() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
if ($instrumentID == 1) {
$sql = "call sp_itf_result_alinity(?)";
} else {
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
// auto calc
$s_noreg = substr($noreg,0,10);
$sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderLabNumber = ? ";
$qry = $this->db->query($sql,array($s_noreg));
$order_id = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$order_id = $rows[0]["T_OrderHeaderID"];
$this->load->library("Resultcalc");
$this->resultcalc->auto($order_id);
//file_put_contents("/xtmp/re-query.sql",$order_id);
}
}
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$sql = "call sp_itf_order(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID));
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK" , "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK" , "order" => array())
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function update_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_update(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function reset_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_reset(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
}
?>

View File

@@ -0,0 +1,202 @@
<?php
class Portserverdbg extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_one = $this->load->database("onedev", true);
}
function raw() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$data = $param["data"];
$sql = "insert into itf_raw(itf_RawNat_InstrumentID,itf_RawData)
values(?,?)";
$this->db_one->query($sql, array($instrumentID, base64_decode($data)));
echo json_encode(
array("status" => "OK" , "id" => $this->db_one->insert_id() , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
function resultv2() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
switch($instrumentID) {
case 1:
$sql = "call sp_itf_result_alinity(?)";
break;
case 27:
$sql = "call sp_itf_result_architect(?)";
break;
default:
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
// auto calc
$s_noreg = substr($noreg,0,10);
$sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderLabNumber = ? ";
$qry = $this->db->query($sql,array($s_noreg));
$order_id = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$order_id = $rows[0]["T_OrderHeaderID"];
$this->load->library("Resultcalc");
$this->resultcalc->auto($order_id);
//file_put_contents("/xtmp/re-query.sql",$order_id);
}
}
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function result() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$rawID = $param["rawID"];
$result= $param["result"];
$noreg = $result["nolab"];
$sql = "insert into itf_result(itf_ResultNat_InstrumentID, itf_ResultItf_RawID,
Itf_ResultNoreg, Itf_ResultInstrumentDate, itf_ResultKode, itf_ResultResult, itf_ResultFlag)
values(?,?,?,?,?,?,?)";
foreach($result["result"] as $r) {
$tgl = $r["date"];
$px = $r["px"];
$result = $r["result"];
$this->db_one->query($sql,
array($instrumentID, $rawID, $noreg, $tgl , $px,
$result,$r["flag"]));
}
if ($instrumentID == 1) {
$sql = "call sp_itf_result_alinity(?)";
} else {
$sql = "call sp_itf_result(?)";
}
$this->db->query($sql, array($rawID));
// auto calc
$s_noreg = substr($noreg,0,10);
$sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderLabNumber = ? ";
$qry = $this->db->query($sql,array($s_noreg));
$order_id = 0;
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$order_id = $rows[0]["T_OrderHeaderID"];
$this->load->library("Resultcalc");
$this->resultcalc->auto($order_id);
//file_put_contents("/xtmp/re-query.sql",$order_id);
}
}
echo json_encode(
array("status" => "OK" , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$sql = "call sp_itf_order_dbg(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID));
echo $this->db->last_query(); exit;
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK" , "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK" , "order" => array())
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function update_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_update(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
function reset_order() {
$param = $this->sys_input;
$sampleID = $param["sampleID"];
$instrumentID = $param["instrumentID"];
$status = $param["status"];
$sql = "call sp_itf_order_reset(?,?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID,$sampleID,$status));
if ($qry) {
echo json_encode(
array("status" => "OK" , "message" => "")
);
} else {
$msg = print_r($this->db->error(),true);
echo json_encode(
array("status" => "OK" , "message" => $msg )
);
}
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "message" => $e->message() )
);
}
}
}
?>

View File

@@ -0,0 +1,51 @@
<?php
class Queue extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_smartone = $this->load->database("onedev", true);
}
function now() {
$sql = "select
ifnull( sum( if(queueStatusTicket + interval 5 minute > now() , 1, 0) ), 0 ) Less5Min,
ifnull( sum( if(queueStatusTicket + interval 5 minute <= now() , 1, 0) ), 0 ) More5Min
from antrione.queue
join antrione.queue_status on queueID = queueStatusQueueID
and queueStatusFirstCall is null
and date(queueStatusTicket) = date(now()) ";
$qry = $this->db_smartone->query($sql);
if ($qry) {
$rows = $qry->result_array();
$this->sys_ok(
$rows[0]
);
} else {
$this->sys_error_db(
"",
$this->db_smartone
);
}
}
function status() {
$sql = "select
HourStepHour Hour, count(*) Total,
sum(if(queueStatusTicket + interval 5 minute > queueStatusFirstCall , 1, 0)) Less5Min,
sum(if(queueStatusTicket + interval 5 minute <= queueStatusFirstCall , 1, 0)) More5Min
from antrione.hourstep
left join antrione.queue_status on HourStepHour = hour(queueStatusTicket)
group by HourStepHour ";
$qry = $this->db_smartone->query($sql);
if ($qry) {
$rows = $qry->result_array();
$this->sys_ok(
$rows
);
} else {
$this->sys_error_db(
"",
$this->db_smartone
);
}
}
}
?>

View File

@@ -0,0 +1,287 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email_eng.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
CONCAT(if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName),'_',M_LangCode) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y' AND Group_ResultID = 1
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
if($rows){
$exist_lab = 'N';
foreach($rows as $kx => $vx){
if($vx['Group_ResultID'] == '1' || $vx['Group_ResultID'] == 1)
$exist_lab = 'Y';
}
$rtn = $rows;
foreach($rows as $k => $v){
if($v['Group_ResultID'] == '13' || $v['Group_ResultID'] == 13){
$sql = "SELECT T_OrderDetailResult as result
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND
Group_ResultName = 'Mikro'
WHERE T_OrderDetailT_OrderHeaderID = {$v['order_id']} AND T_OrderDetailIsActive = 'Y' LIMIT 1";
//echo $sql;
$xresult = $this->db_onedev->query($sql)->row()->result;
//if($xresult == 'Negatif')
// $rows[$k]['url_rpt'] = 'http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
if($xresult != 'Terlampir'){
$rtn[$k]['url_rpt'] = 'http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
}
if($xresult == 'Terlampir' && $exist_lab == 'N'){
$new_group = $rows[$k];
$new_group['type_result'] = 'Mikro';
$new_group['url_rpt'] = 'http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
array_push($rtn,$new_group);
}
}
}
}
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rtn);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,77 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN 'laporan_papsmear'
WHEN Group_ResultID = 3 THEN 'laporan_FNA'
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN 'laporan_Test Kebugaran'
END as url_rpt,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,M_DoctorName,M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultID = 1
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,215 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
if($rows){
foreach($rows as $k => $v){
if($v['Group_ResultID'] == '13' || $v['Group_ResultID'] == 13){
$sql = "SELECT T_OrderDetailResult as result
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND
Group_ResultName = 'Mikro'
WHERE T_OrderDetailT_OrderHeaderID = {$v['order_id']} AND T_OrderDetailIsActive = 'Y' LIMIT 1";
//echo $sql;
$xresult = $this->db_onedev->query($sql)->row()->result;
if($xresult == 'Negatif')
$rows[$k]['url_rpt'] = 'http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
}
}
}
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,192 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,195 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,195 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,192 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultID <> 10
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,77 @@
<?php
class Resultemail extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN 'laporan_papsmear'
WHEN Group_ResultID = 3 THEN 'laporan_FNA'
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN 'laporan_Test Kebugaran'
END as url_rpt,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,M_DoctorName,M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultID = 1
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID";
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,192 @@
<?php
class Resultemaildebug extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'Q' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'Q' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('http://localhost/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as doctor_name
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'Q' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($rows);
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$sql = "UPDATE result_handoveremail SET Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,326 @@
<?php
class Resultemailv4 extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email_eng.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
CONCAT(if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName),'_',M_LangCode) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y' AND Group_ResultID = 1
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')),
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
ELSE
T_EmailNonLabUrl
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultID <> 8
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
if($rows){
$exist_lab = 'N';
foreach($rows as $kx => $vx){
if($vx['type_result'] == 'LAB')
$exist_lab = 'Y';
}
foreach($rows as $k => $v){
if($v['Group_ResultID'] == '13' || $v['Group_ResultID'] == 13){
$sql = "SELECT T_OrderDetailResult as result
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND
Group_ResultName = 'Mikro'
WHERE T_OrderDetailT_OrderHeaderID = {$v['order_id']} AND T_OrderDetailIsActive = 'Y' LIMIT 1";
//echo $sql;
$xresult = $this->db_onedev->query($sql)->row()->result;
//if($xresult != 'P')
//$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
if($xresult != 'Terlampir'){
$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
}
if($xresult == 'Terlampir' && $exist_lab == 'N'){
$rows[$k]['type_result'] = 'Lampiran Mikro';
$new_group = $rows[$k];
$new_group['type_result'] = 'Mikro';
$new_group['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
array_push($rows,$new_group);
}
}
}
$arr_grouping = array();
foreach($rows as $ki => $vi){
$idx = $this->getgroup_idx($arr_grouping,$vi['order_id']);
if($idx == -1){
$xnew = $vi;
$xnew['details'] = array(array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
array_push($arr_grouping,$xnew);
}
else{
$e_old = $arr_grouping[$idx]['details'];
array_push($e_old,array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
$arr_grouping[$idx]['details'] = $e_old;
}
}
}
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($arr_grouping);
}
function getgroup_idx($groups,$orderid){
$idx = -1;
foreach($groups as $k => $v){
if($v['order_id'] == $orderid){
$idx = $k;
}
}
return $idx;
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$update_time = '';
if($status == 'D')
$update_time = 'Result_HandOverEmailReceivedDateTime = NOW(),';
$sql = "UPDATE result_handoveremail SET $update_time Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,328 @@
<?php
class Resultemailv4 extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email_eng.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
CONCAT(if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName),'_',M_LangCode) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y' AND Group_ResultID = 1
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')),
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND (
Group_ResultName = 'Rontgen' OR Group_ResultName = 'BMD' OR Group_ResultName = 'USG'
)
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
if($rows){
$exist_lab = 'N';
foreach($rows as $kx => $vx){
if($vx['type_result'] == 'LAB')
$exist_lab = 'Y';
}
foreach($rows as $k => $v){
if($v['Group_ResultID'] == '13' || $v['Group_ResultID'] == 13){
$sql = "SELECT T_OrderDetailResult as result
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND
Group_ResultName = 'Mikro'
WHERE T_OrderDetailT_OrderHeaderID = {$v['order_id']} AND T_OrderDetailIsActive = 'Y' LIMIT 1";
//echo $sql;
$xresult = $this->db_onedev->query($sql)->row()->result;
//if($xresult != 'P')
//$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
if($xresult != 'Terlampir'){
$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
}
if($xresult == 'Terlampir' && $exist_lab == 'N'){
$rows[$k]['type_result'] = 'Lampiran Mikro';
$new_group = $rows[$k];
$new_group['type_result'] = 'Mikro';
$new_group['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
array_push($rows,$new_group);
}
}
}
$arr_grouping = array();
foreach($rows as $ki => $vi){
$idx = $this->getgroup_idx($arr_grouping,$vi['order_id']);
if($idx == -1){
$xnew = $vi;
$xnew['details'] = array(array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
array_push($arr_grouping,$xnew);
}
else{
$e_old = $arr_grouping[$idx]['details'];
array_push($e_old,array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
$arr_grouping[$idx]['details'] = $e_old;
}
}
}
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($arr_grouping);
}
function getgroup_idx($groups,$orderid){
$idx = -1;
foreach($groups as $k => $v){
if($v['order_id'] == $orderid){
$idx = $k;
}
}
return $idx;
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$update_time = '';
if($status == 'D')
$update_time = 'Result_HandOverEmailReceivedDateTime = NOW(),';
$sql = "UPDATE result_handoveremail SET $update_time Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,344 @@
<?php
class Resultemailv5 extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details,
'X' So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
AND T_OrderDetailT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email_eng.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
CONCAT(if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName),'_',M_LangCode) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details,
'X' So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
AND T_OrderDetailT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y' AND Group_ResultID = 1
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')),
'' as details,
'X' So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
AND T_OrderDetailT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultFlagPerTest = 'N'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
ELSE
T_EmailNonLabUrl
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details,
So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
AND T_OrderDetailT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultFlagPerTest = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
if($rows){
$exist_lab = 'N';
foreach($rows as $kx => $vx){
if($vx['type_result'] == 'LAB')
$exist_lab = 'Y';
}
foreach($rows as $k => $v){
if($v['So_ResultEntrySo_TemplateOther'] == 'UMUM' || $v['So_ResultEntrySo_TemplateOther'] == 'UMUM_KONSUL'){
$x_url = $rows[$k]['url_rpt'];
$ex_url = explode('|^|',$x_url);
//print_r($ex_url);
$rows[$k]['type_result'] = 'Riwayat';
$rows[$k]['url_rpt'] = $ex_url[0];
$new_group = $rows[$k];
$new_group['type_result'] = 'Fisik';
$new_group['url_rpt'] = isset($ex_url[1])?$ex_url[1]:$ex_url[0];
array_push($rows,$new_group);
}
if($v['Group_ResultID'] == '13' || $v['Group_ResultID'] == 13){
$sql = "SELECT T_OrderDetailResult as result
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND
Group_ResultName = 'Mikro'
WHERE T_OrderDetailT_OrderHeaderID = {$v['order_id']} AND T_OrderDetailIsActive = 'Y' LIMIT 1";
//echo $sql;
$xresult = $this->db_onedev->query($sql)->row()->result;
//if($xresult != 'P')
//$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
if($xresult != 'Terlampir'){
$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
}
if($xresult == 'Terlampir' && $exist_lab == 'N'){
$rows[$k]['type_result'] = 'Lampiran Mikro';
$new_group = $rows[$k];
$new_group['type_result'] = 'Mikro';
$new_group['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
array_push($rows,$new_group);
}
}
}
$arr_grouping = array();
foreach($rows as $ki => $vi){
$idx = $this->getgroup_idx($arr_grouping,$vi['order_id']);
if($idx == -1){
$xnew = $vi;
$xnew['details'] = array(array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
array_push($arr_grouping,$xnew);
}
else{
$e_old = $arr_grouping[$idx]['details'];
array_push($e_old,array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
$arr_grouping[$idx]['details'] = $e_old;
}
}
}
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($arr_grouping);
}
function getgroup_idx($groups,$orderid){
$idx = -1;
foreach($groups as $k => $v){
if($v['order_id'] == $orderid){
$idx = $k;
}
}
return $idx;
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$update_time = '';
if($status == 'D')
$update_time = 'Result_HandOverEmailReceivedDateTime = NOW(),';
$sql = "UPDATE result_handoveremail SET $update_time Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,340 @@
<?php
class Resultemailv5 extends MY_Controller
{
function getdata() {
$this->db_onedev = $this->load->database("onedev", true);
$sql = " SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details,
'X' So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email_eng.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
WHEN Group_ResultID = 6 THEN 'laporan_USG'
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
CONCAT(if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName),'_',M_LangCode) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details,
'X' So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y' AND Group_ResultID = 1
GROUP BY Result_ProcessToOfficeID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')),
'' as details,
'X' So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultFlagPerTest = 'N'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
T_EmailNonLabType = Group_ResultName
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID
UNION
SELECT Result_HandOverEmailID as xid,
T_OrderHeaderID as order_id,
T_OrderHeaderLabNumberExt as order_noreg_ext,
T_OrderHeaderLabNumber as order_noreg,
CONCAT(IFNULL(M_TitleName,''),' ',M_PatientName) as patient_name,
M_PatientDOB,
M_CompanyName as company_name,
M_CompanyTypeID as company_type_id,
Result_HandOverEmailUserID as user_id,
M_StaffName as staff_name,
M_CompanyTypeName as company_type_name,
IF((T_OrderDeliveryM_DeliveryID = 3),'APS',IF(T_OrderDeliveryM_DeliveryID = 5,'APD','RK')) as type_format,
CASE
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=',M_StaffName,'&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
ELSE
T_EmailNonLabUrl
END as url_rpt,
Group_ResultID,
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
T_OrderDeliveryDestination as email_address,
Result_HandOverEmailRetry as retry_count,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
CONCAT(IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_name,
'' as details,
So_ResultEntrySo_TemplateOther
FROM result_handoveremail
JOIN t_orderheader ON Result_HandOverEmailT_OrderHeaderID = T_OrderHeaderID
JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
LEFT JOIN m_companytype ON M_CompanyM_CompanyTypeID = M_CompanyTypeID
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
Result_ProcessToOfficeT_OrderPromiseID = Result_HandOverEmailT_OrderPromiseID AND
Result_HandOverEmailT_OrderDeliveryID = Result_ProcessToOfficeT_OrderDeliveryID AND Result_ProcessToOfficeStatus = 'S'
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
JOIN m_user ON Result_HandOverEmailUserID = M_UserID
JOIN m_staff ON M_UserM_StaffID = M_StaffID
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultFlagPerTest = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
T_EmailNonLabResultEntryID <> 0
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
WHERE
Result_HandOverEmailStatus = 'S' AND Result_HandOverEmailIsActive = 'Y'
GROUP BY T_EmailNonLabID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
if($rows){
$exist_lab = 'N';
foreach($rows as $kx => $vx){
if($vx['type_result'] == 'LAB')
$exist_lab = 'Y';
}
foreach($rows as $k => $v){
if($v['So_ResultEntrySo_TemplateOther'] == 'UMUM'){
$x_url = $rows[$k]['url_rpt'];
$ex_url = explode('|^|',$x_url);
//print_r($ex_url);
$rows[$k]['type_result'] = 'Riwayat';
$rows[$k]['url_rpt'] = $ex_url[0];
$new_group = $rows[$k];
$new_group['type_result'] = 'Fisik';
$new_group['url_rpt'] = isset($ex_url[1])?$ex_url[1]:$ex_url[0];
array_push($rows,$new_group);
}
if($v['Group_ResultID'] == '13' || $v['Group_ResultID'] == 13){
$sql = "SELECT T_OrderDetailResult as result
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND
Group_ResultName = 'Mikro'
WHERE T_OrderDetailT_OrderHeaderID = {$v['order_id']} AND T_OrderDetailIsActive = 'Y' LIMIT 1";
//echo $sql;
$xresult = $this->db_onedev->query($sql)->row()->result;
//if($xresult != 'P')
//$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
if($xresult != 'Terlampir'){
$rows[$k]['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
}
if($xresult == 'Terlampir' && $exist_lab == 'N'){
$rows[$k]['type_result'] = 'Lampiran Mikro';
$new_group = $rows[$k];
$new_group['type_result'] = 'Mikro';
$new_group['url_rpt'] = '/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username='.$v['staff_name'].'&PID='.$v['order_id'].'&ts='.strtotime("now");
array_push($rows,$new_group);
}
}
}
$arr_grouping = array();
foreach($rows as $ki => $vi){
$idx = $this->getgroup_idx($arr_grouping,$vi['order_id']);
if($idx == -1){
$xnew = $vi;
$xnew['details'] = array(array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
array_push($arr_grouping,$xnew);
}
else{
$e_old = $arr_grouping[$idx]['details'];
array_push($e_old,array('type_result'=>$vi['type_result'],'url'=>$vi['url_rpt']));
$arr_grouping[$idx]['details'] = $e_old;
}
}
}
$data = array();
//if (count($rows) > 0 ) $data = $rows[0];
echo json_encode($arr_grouping);
}
function getgroup_idx($groups,$orderid){
$idx = -1;
foreach($groups as $k => $v){
if($v['order_id'] == $orderid){
$idx = $k;
}
}
return $idx;
}
function updatedata($xid,$status) {
$this->db_onedev = $this->load->database("onedev", true);
//$xid = $this->input->get("xid");
//$status = $this->input->get("status");
$update_time = '';
if($status == 'D')
$update_time = 'Result_HandOverEmailReceivedDateTime = NOW(),';
$sql = "UPDATE result_handoveremail SET $update_time Result_HandOverEmailStatus = '{$status}', Result_HandOverEmailRetry = Result_HandOverEmailRetry + 1 WHERE Result_HandOverEmailID = {$xid}";
$query = $this->db_onedev->query($sql);
$this->broadcast("email-done");
if($query)
return true;
else
return false;
}
}
?>

View File

@@ -0,0 +1,283 @@
<?php
// curl -d '{"station_id":1}' http://sasone.aplikasi.web.id/one-api/v1/su/samplinglab/process
//
class Samplinglab extends MY_Controller
{
public function __construct() {
parent::__construct();
$this->db_smartone = $this->load->database("onedev", true);
}
function list() {
$prm = $this->sys_input;
$station_id = $prm["station_id"];
$start_date = date("Y-m-d 00:00:01");
$end_date = date("Y-m-d 23:59:59");
$sql = "select
concat(M_TitleName,' ',M_PatientName) Name,
fn_numbering_external(T_OrderHeaderLabNumber) Noreg,
case
when T_SamplingQueueLastStatusT_SamplingQueueStatusID is null then 'Tunggu'
when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 1 then 'Panggil'
when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 2 then 'Skip'
end Status
from t_orderheader
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
and T_OrderHeaderIsActive = 'Y'
join m_title on M_TitleID = M_PatientM_TitleID
join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID
left join t_sampling_queue_last_status
on T_OrderHeaderID = T_SamplingQueueLastStatusT_OrderHeaderID
where ( T_SamplingQueueLastStatusT_SamplingQueueStatusID <= 2 or
T_SamplingQueueLastStatusT_SamplingQueueStatusID is null )
and T_OrderHeaderDate > '$start_date' and T_OrderHeaderDate < '$end_date'
and T_OrderSampleT_SampleStationID = $station_id
group by T_OrderHeaderID
order by T_OrderHeaderIsCito desc, T_OrderHeaderID
";
$qry = $this->db_smartone->query($sql);
if ($qry) {
$rows = $qry->result_array();
$this->sys_ok(
$rows
);
} else {
$this->sys_error_db(
"",
$this->db_smartone
);
}
}
function process() {
$prm = $this->sys_input;
$station_id = $prm["station_id"];
$start_date = date("Y-m-d 00:00:01");
$end_date = date("Y-m-d 23:59:59");
$sql = "select
concat(M_TitleName,' ',M_PatientName) Name,
fn_numbering_external(T_OrderHeaderLabNumber) Noreg,
case
when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 1 then 'Tunggu'
when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 2 then 'Tunggu'
when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 3 then 'Proses'
end Status
from t_sampling_queue_last_status
join t_orderheader on T_SamplingQueueLastStatusT_OrderHeaderID = T_OrderHeaderID
and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
join m_title on M_TitleID = M_PatientM_TitleID
where T_SamplingQueueLastStatusT_SamplingQueueStatusID = 3
and T_OrderHeaderDate > '$start_date' and T_OrderHeaderDate < '$end_date'
and T_SamplingQueueLastStatusT_SampleStationID = $station_id
order by T_OrderHeaderIsCito desc, T_OrderHeaderID
";
$qry = $this->db_smartone->query($sql);
if ($qry) {
$rows = $qry->result_array();
$this->sys_ok(
$rows
);
} else {
$this->sys_error_db(
"",
$this->db_smartone
);
}
}
function generate_sample(){
$sql = "SELECT * FROM t_orderheader";
$qry = $this->db_smartone->query($sql);
$datas = $qry->result_array();
if($datas){
foreach ($datas as $key => $value) {
$counter_barcode = 1;
$sql = "SELECT T_OrderHeaderLabNumber, T_TestID, T_SampleTypeID , T_SampleTypeSuffix, T_SampleStationIsNonLab, T_SampleStationID
from t_orderheader
JOIN t_orderdetail ON t_orderheaderid = t_orderdetailt_orderheaderid AND t_orderdetailIsActive = 'Y'
JOIN t_test ON t_orderdetailt_testid = t_testid AND T_TestIsResult = 'Y'
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
where T_OrderHeaderID = {$value['T_OrderHeaderID']}
group by T_SampleTypeID";
$qry = $this->db_smartone->query($sql);
$data_samples = $qry->result_array();
foreach ($data_samples as $k => $v) {
$lab_no = $v['T_OrderHeaderLabNumber'];
$test_id = $v['T_TestID'];
$sample_id = $v['T_SampleTypeID'];
$sample_code = $v['T_SampleTypeSuffix'];
$barcode = $lab_no.$sample_code;
$isnonlab = $v['T_SampleStationIsNonLab'];
$samplestation_id = $v['T_SampleStationID'];
if( $counter_barcode == 1){
$barcode = $barcode.$counter_barcode;
$sql = "INSERT INTO t_barcodelab(
T_BarcodeLabT_OrderHeaderID,
T_BarcodeLabBarcode,
T_BarcodeLabT_SampleTypeID,
T_BarcodeLabCounter)
VALUES ({$value['T_OrderHeaderID']},'{$barcode}',{$sample_id},{$counter_barcode})";
$this->db_smartone->query($sql);
$last_id_barcode = $this->db_smartone->insert_id();
if($isnonlab == ""){
$sql = "INSERT INTO t_ordersample(
T_OrderSampleT_OrderHeaderID,
T_OrderSampleT_SampleTypeID,
T_OrderSampleT_BarcodeLabID,
T_OrderSampleBarcode,
T_OrderSampleT_SampleStationID)
VALUES ({$value['T_OrderHeaderID']},{$sample_id},{$last_id_barcode},'{$barcode}',{$samplestation_id})";
$this->db_smartone->query($sql);
}
}
$sql = "SELECT MAX(T_BarcodeLabCounter) as ctr
FROM t_barcodelab
WHERE T_BarcodeLabT_OrderHeaderID = {$value['T_OrderHeaderID']} AND T_BarcodeLabBarcode LIKE CONCAT('{$barcode}', '%')
AND T_BarcodeLabIsActive = 'Y'";
$qry = $this->db_smartone->query($sql);
if($qry){
$ctr = $qry->row()->ctr;
$counter_barcode = $ctr + 1;
}
}
}
}
echo 'Selesai';
}
function order_station(){
$sql = "SELECT * FROM t_orderheader";
$qry = $this->db_smartone->query($sql);
$datas = $qry->result_array();
if($datas){
foreach ($datas as $key => $value) {
$counter_barcode = 1;
$sql = "SELECT T_SampleStationID,T_SampleStationName
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y'
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
WHERE
T_OrderDetailT_OrderHeaderID = {$value['T_OrderHeaderID']}
GROUP BY T_SampleStationID";
$qry = $this->db_smartone->query($sql);
$data_samples = $qry->result_array();
foreach ($data_samples as $k => $v) {
$sql = "SELECT *
FROM m_location
WHERE
M_LocationT_SampleStationID = {$v['T_SampleStationID']}
ORDER BY M_LocationPriority DESC, M_LocationID ASC
LIMIT 1";
$location_id = $this->db_smartone->query($sql)->row()->M_LocationID;
$sql = "INSERT INTO t_order_location(
T_OrderLocationT_OrderHeaderID,
T_OrderLocationM_LocationID,
T_OrderLocationT_SampleStationID)
VALUES ({$value['T_OrderHeaderID']},{$location_id},{$v['T_SampleStationID']})";
$this->db_smartone->query($sql);
}
}
}
echo 'Selesai';
}
function fisik_umum_generate(){
$sql = " SELECT xsofisik.*, nso.So_ResultEntryID as re_id
FROM so_resultentry nso
JOIN t_orderheader norder ON nso.So_ResultEntryT_OrderHeaderID = T_OrderHeaderID
JOIN xso_resultentry_fisik_umum xsofisik ON xsofisik.T_OrderHeaderLabNumber = norder.T_OrderHeaderLabNumber
WHERE
`So_ResultEntryNonlab_TemplateName` = 'fisik umum' ";
$qry = $this->db_smartone->query($sql);
$datas = $qry->result_array();
if($datas){
foreach ($datas as $key => $value) {
$re_id = $value['re_id'];
$details = json_decode($value['So_ResultEntryFisikUmumDetails'], true);
if($value['So_ResultEntryFisikUmumType'] == 'riwayat' || $value['So_ResultEntryFisikUmumType'] == 'fisik'){
foreach ($details as $k => $v) {
$title = $v['title'];
$sql = " SELECT *
FROM fisik_template
WHERE
`FisikTemplateTitle` = ? AND FisikTemplateIsActive = 'Y' LIMIT 1";
$qry = $this->db_smartone->query($sql,[$title]);
// echo $this->db_smartone->last_query();
$templateID = $qry->row()->FisikTemplateID;
$result = json_encode($v);
$sql = "INSERT INTO so_resultentry_fisik_umum (
So_ResultEntryFisikUmumSo_ResultEntryID,
So_ResultEntryFisikUmumFisikTemplateID,
So_ResultEntryFisikUmumDetails
)
VALUES (?,?,?)";
$this->db_smartone->query($sql,[$re_id,$templateID,$result]);
}
}
}
}
echo 'Selesai';
}
function summarynonlab_generate(){
$sql = " SELECT *
FROM mcu_summarynonlab
JOIN nonlab_conclusion_mapping ON NonlabConclusionMappingNat_TestID = Mcu_SummaryNonlabNat_TestID AND Mcu_SummaryNonlabIsActive = 'Y'
WHERE
`Mcu_SummaryNonlabIsActive` = 'Y' ";
$qry = $this->db_smartone->query($sql);
$datas = $qry->result_array();
if($datas){
foreach ($datas as $key => $value) {
$new_ids = [];
$exp_val = explode(",",$value['Mcu_SummaryNonlabValue']);
foreach ($exp_val as $k => $v) {
$sql = "SELECT NonlabConclusionDetailID
FROM mcu_statusresult_value
JOIN nonlab_conclusion_detail ON NonlabConclusionDetailName = Mcu_StatusResultValueName AND NonlabConclusionDetailNonlabConclusionID = {$value['NonlabConclusionMappingNonlabConclusionID']}
WHERE
Mcu_StatusResultValueCode = '{$v}' AND Mcu_StatusResultValueIsActive = 'Y'";
$qry = $this->db_smartone->query($sql);
$row_id = $qry->row()->NonlabConclusionDetailID;
array_push($new_ids,$row_id);
}
$ids_join = JOIN(",", $new_ids);
$sql ="UPDATE mcu_summarynonlab SET Mcu_SummaryNonlabConclusionDetailIDs = '{$ids_join}'
WHERE Mcu_SummaryNonlabID = {$value['Mcu_SummaryNonlabID']}";
$this->db_smartone->query($sql);
}
}
echo 'Selesai';
}
}
?>

View File

@@ -0,0 +1,269 @@
<?php
class Test extends MY_Controller
{
var $db_onedev;
public function index()
{
echo "Transaction API";
}
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
$this->db_log = $this->load->database("log", true);
$this->load->helper(array('form', 'url'));
}
/**
* Generic POST request function
* @param string $url API endpoint URL
* @param array $data Request payload
* @param array $headers Custom headers (optional)
* @return array Response from API
*/
/**
* Generic PUT request function
* @param string $url API endpoint URL
* @param array $data Request payload
* @param array $headers Custom headers (optional)
* @return array Response from API
*/
/**
* POST request to auth API
* @param string $username Username for authentication
* @param string $password Password for authentication
* @return array Response from API
*/
public function post_auth()
{
$dt_config = $this->get_config();
$baseUrl = $dt_config['AisConfigBaseUrl'];
$url = $baseUrl.'/api/auth/auth.php';
$headers = array(
'Header-Token: '.$dt_config['AisConfigHeaderToken']
);
$username = $dt_config['AisConfigUsername'];
$password = $dt_config['AisConfigPassword'];
$data = array(
'username' => $username,
'password' => $password
);
$result = $this->post_request($url, $data, $headers);
$sql = "INSERT INTO ais_login_log(
AisLoginLogUsername,
AisLoginLogPassword,
AisLoginLogHeaderToken,
AisLoginLogResult,
AisLoginLogCreated
)
VALUES(
?,
?,
?,
?,
NOW()
)";
$qry = $this->db_log->query($sql, array($username,$password,$dt_config['AisConfigHeaderToken'],json_encode($result)));
if(!$qry){
$this->error_log(array('fn_name'=>'post_auth','message'=>'ais_login_log insert','query'=>$sql,'json'=>json_encode($result)),999);
exit;
}
//print_r($result);
//exit;
// Check if success
if(!$result['success']){
$this->error_log(array('fn_name'=>'post_auth','message'=>'failed auth','query'=>'','json'=>json_encode($result)),999);
$errors = array('status' => 'error','message' => 'Gagal Login');
return $errors;
}else{
// Update token
$token = $result['data']['token'];;
$sql = "UPDATE ais_config SET AisConfigAuthToken = ? WHERE AisConfigID = 1";
$qry = $this->db_onedev->query($sql, array($token));
//echo $this->db_onedev->last_query();
//exit;
if(!$qry){
$this->error_log(array('fn_name'=>'post_auth','message'=>'ais_config update','query'=>$sql,'json'=>''),999);
$errors = array('status' => 'error','message' => 'Gagal Update Token');
return $errors;
}
return $result;
}
}
function monitoring_test()
{
// SQL base
$sql_base = "SELECT
t.T_TestID,
t.T_TestCode AS test_code,
t.T_TestSasCode AS sas_code,
t.T_TestName AS test_name,
t.T_TestIsPrice AS is_price,
t.T_TestIsResult AS is_result,
t.T_TestIsActive AS test_active,
at.Ais_TestStatus AS Ais_TestStatus,
at.Ais_TestLastUpdate AS test_last_update,
IF (at.Ais_TestID IS NULL, 'N', 'Y') AS test_status
FROM t_test t
LEFT JOIN (
SELECT Ais_TestTestSasCode, Ais_TestStatus, Ais_TestLastUpdate, Ais_TestID
FROM ".$this->db_log->database.".ais_test
WHERE Ais_TestStatus = 'success'
) at
ON at.Ais_TestTestSasCode = t.T_TestSasCode
";
// Ambil parameter
$test_name = $this->input->get('test_name'); // TRUE for XSS filtering
$sas_code = $this->input->get('sas_code');
$test_code = $this->input->get('test_code');
$test_status = $this->input->get('test_status');
// Pagination
$page = $this->input->get('page') ? intval($this->input->get('page')) : 1;
$limit = 10;
$offset = ($page - 1) * $limit;
$params = [];
$where_clauses = [
"t.T_TestIsActive = 'Y'"
];
// Status filter
if ($test_status === 'Y') {
$where_clauses[] = "at.Ais_TestID IS NOT NULL";
} elseif ($test_status === 'N') {
$where_clauses[] = "at.Ais_TestID IS NULL";
}
if ($test_name) {
$where_clauses[] = "t.T_TestName LIKE ?";
$params[] = "%$test_name%";
}
if ($test_code) {
$where_clauses[] = "t.T_TestCode LIKE ?";
$params[] = "%$test_code%";
}
if ($sas_code) {
$where_clauses[] = "t.T_TestSasCode LIKE ?";
$params[] = "%$sas_code%";
}
$where_sql = "";
if (!empty($where_clauses)) {
$where_sql = " WHERE " . implode(" AND ", $where_clauses);
}
// COUNT
$count_sql = "
SELECT COUNT(*) AS total
FROM (
SELECT t.T_TestID
FROM t_test t
LEFT JOIN (
SELECT Ais_TestTestSasCode, Ais_TestID
FROM ".$this->db_log->database.".ais_test
WHERE Ais_TestStatus = 'success'
) at
ON at.Ais_TestTestSasCode = t.T_TestSasCode
$where_sql
GROUP BY t.T_TestID
) AS x
";
$qry_count = $this->db_onedev->query($count_sql, $params);
$total = $qry_count->row()->total ?? 0;
// MAIN QUERY
$sql = $sql_base . $where_sql . "
GROUP BY t.T_TestID
ORDER BY t.T_TestID ASC
LIMIT $limit OFFSET $offset";
$qry = $this->db_onedev->query($sql, $params);
// if (!$qry) {
// $this->output
// ->set_content_type('application/json')
// ->set_output(json_encode(['status' => 'error', 'message' => 'Gagal mengambil data monitoring.']));
// return;
// }
if (!$qry) {
echo json_encode(['status' => 'error', 'message' => 'Gagal mengambil data monitoring.']);
exit;
}
$data = $qry->result_array();
echo json_encode([
'status' => 'success',
'message' => 'Berhasil mengambil data monitoring.',
'data' => $data,
'total' => $total,
'page' => $page,
'limit' => $limit,
'total_page' => ceil($total / $limit)
]);
exit;
}
function get_json_response()
{
$sas_code = $this->input->get('sas_code');
if (empty($sas_code)) {
return $this->output
->set_status_header(400)
->set_content_type('application/json')
->set_output(json_encode([
'status' => 'error',
'message' => 'sas_code parameter is required'
]));
}
$sql = "SELECT
Ais_TestID AS id,
Ais_TestTestSasCode AS sas_code,
Ais_TestJSON AS test_json,
Ais_TestStatus AS test_status,
Ais_TestResponse AS test_response,
Ais_TestLastUpdate AS test_last_update
FROM ais_test
WHERE Ais_TestTestSasCode = ?
ORDER BY Ais_TestLastUpdate DESC";
// Query ke database LOG
$qry = $this->db_log->query($sql, [$sas_code]);
$results = $qry->row_array();
$results = $qry->result_array();
if ($results) {
// Loop through each result to decode JSON
foreach ($results as &$result) {
$result['packet_json'] = json_decode($result['packet_json']);
$result['packet_response'] = json_decode($result['packet_response']);
}
unset($result); // Unset reference to avoid side effects
echo json_encode(['status' => 'success', 'data' => $results]);
} else {
echo json_encode(['status' => 'error', 'message' => 'Data not found for the given sas code.']);
}
exit;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,930 @@
<?php
class Test extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
}
function index() {
$this->load->library("Resultcalc");
$id = 946;
$rows = $this->resultcalc->auto($id);
echo "<pre> $rows";
}
function generatessprice($mgmmcuid){
$this->load->library('SsPriceMou');
$this->sspricemou->create($mgmmcuid);
echo "selesai";
}
function genqrcode($nomorlab,$id){
$this->load->library('ciqrcode'); //pemanggilan library QR CODE
$home_dir = "/home/one/project/one/";
$target_dir = $home_dir . "one-media/one-qrcontrolcard/";
$config['cacheable'] = false; //boolean, the default is true
//$config['cachedir'] = './assets/'; //string, the default is application/cache/
//$config['errorlog'] = './assets/'; //string, the default is application/logs/
$config['imagedir'] = $target_dir; //direktori penyimpanan qr code
$config['quality'] = true; //boolean, the default is true
$config['size'] = '1024'; //interger, the default is 1024
$config['black'] = array(224,255,255); // array, default is array(255,255,255)
$config['white'] = array(70,130,180); // array, default is array(0,0,0)
$this->ciqrcode->initialize($config);
$image_name="qrcode_".$nomorlab.".png"; //buat name dari qr code sesuai dengan nim
$params['data'] = "http://devcpone.aplikasi.web.id/one-ui/test/vuex/cpone-control-card/?noreg=".$nomorlab."&id=".$id; //data yang akan di jadikan QR CODE
$params['level'] = 'H'; //H=High
$params['size'] = 10;
$params['savename'] = $config['imagedir'].$image_name; //simpan image QR CODE ke folder assets/images/
$this->ciqrcode->generate($params); // fungsi untuk generate QR CODE
echo "http://devcpone.aplikasi.web.id/one-api/assets/images/".$image_name;
}
function gen_kesimpulan_fisik($id){
$this->load->library('kesimpulanfisik');
$kesimpulan = $this->kesimpulanfisik->kesimpulan($id);
echo $kesimpulan;
}
function generate_kelainan_fisik_all($mgmmcuid,$limit){
$sql = "SELECT *
FROM so_resultentry
JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y' AND
T_OrderHeaderMgm_McuID = ?
WHERE
So_ResultEntryNonlab_TemplateID = 27 AND So_ResultEntryIsActive = 'Y'
LIMIT ? ";
$query = $this->db_onedev->query($sql,array($mgmmcuid,intval($limit)));
//echo $this->db_onedev->last_query();
$datas = $query->result_array();
foreach ($datas as $key => $value) {
$this->gen_kelainan_fisik($value['So_ResultEntryID']);
}
}
function gen_kelainan_fisik($id){
$this->load->library('kesimpulanfisik');
$kesimpulan = $this->kesimpulanfisik->generate_kelainan_fisik($id);
echo json_encode($kesimpulan);
}
function gen_nonlab_template($id){
$this->load->library('nonlabtemplate');
$kesimpulan = $this->nonlabtemplate->generate($id);
print_r($kesimpulan);
}
function genpatientqrcode($nomorlab){
$this->load->library('ciqrcode'); //pemanggilan library QR CODE
$home_dir = "/home/one/project/one/";
$target_dir = $home_dir . "one-media/one-qrpatient/";
$config['cacheable'] = false; //boolean, the default is true
//$config['cachedir'] = './assets/'; //string, the default is application/cache/
//$config['errorlog'] = './assets/'; //string, the default is application/logs/
$config['imagedir'] = $target_dir; //direktori penyimpanan qr code
$config['quality'] = true; //boolean, the default is true
$config['size'] = '1024'; //interger, the default is 1024
$config['black'] = array(224,255,255); // array, default is array(255,255,255)
$config['white'] = array(70,130,180); // array, default is array(0,0,0)
$this->ciqrcode->initialize($config);
$image_name="patient_qr_".$nomorlab.".png"; //buat name dari qr code sesuai dengan nim
$params['data'] = $nomorlab; //data yang akan di jadikan QR CODE
$params['level'] = 'H'; //H=High
$params['size'] = 10;
$params['savename'] = $config['imagedir'].$image_name; //simpan image QR CODE ke folder assets/images/
$this->ciqrcode->generate($params); // fungsi untuk generate QR CODE
echo "https://devcpone.aplikasi.web.id/one-media/one-qrpatient/".$image_name;
//echo "selesai";
}
function truncatextable(){
$this->db = $this->load->database("onedev",true);
$xgroup= array('PRICE','ORDER');
$where_in = "";
foreach ($xgroup as $key => $value) {
if($where_in != "") $where_in .= " or ";
$where_in .= "X_TableTransactionGroupName = '".$value."'";
}
$sql = "SELECT * FROM x_table_transaction
WHERE
X_TableTransactionIsActive = 'Y' AND ( $where_in )";
//echo $sql;
$data_tables = $this->db->query($sql)->result_array();
foreach($data_tables as $k => $v){
$sql = "TRUNCATE TABLE {$v['X_TableTransactionTableName']}";
//echo $sql;
//$this->db->query($sql);
}
echo 'selesai';
}
function exporttoxls(){
$this->db = $this->load->database("onedev",true);
$sql = "SELECT * FROM xtable";
$data_asal = $this->db->query($sql)->result_array();
foreach($data_asal as $k => $v){
$xplode = explode(' ',$v['TANGGAL_LAHIR']);
$tgl = sprintf("%02d", $xplode[0]);
$bln = $this->monthtonumber($xplode[1]);
$thn = $xplode[2];
$xdate = $tgl.'-'.$bln.'-'.$thn;
$sql = "UPDATE xtable SET TANGGAL_LAHIR_INA = '{$xdate}' WHERE id = {$v['id']}";
$this->db->query($sql);
}
echo 'selesai';
}
function monthtonumber($xmonth){
$rst = 0;
if($xmonth == 'Januari')
$rst = '01';
if($xmonth == 'Februari')
$rst = '02';
if($xmonth == 'Maret')
$rst = '03';
if($xmonth == 'April')
$rst = '04';
if($xmonth == 'Mei')
$rst = '05';
if($xmonth == 'Juni')
$rst = '06';
if($xmonth == 'Juli')
$rst = '07';
if($xmonth == 'Agustus')
$rst = '08';
if($xmonth == 'September')
$rst = '09';
if($xmonth == 'Oktober')
$rst = '10';
if($xmonth == 'November')
$rst = '11';
if($xmonth == 'Desember')
$rst = '12';
return $rst;
}
function two() {
$this->db = $this->load->database("onedev",true);
$id = 946;
$sql = "select
T_TestCalculationID,T_TestCalculationFormula,
T_OrderDetailID, T_OrderDetailT_TestID, T_TestNat_TestID,
T_TestCalculationID,T_OrderDetailResult,
fn_global_age_count_day(M_PatientDOB, date(T_OrderHeaderDate)) / 365 AgeInYear,
T_TestCalculationNat_SexID
from t_orderdetail
join t_orderheader on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
and T_OrderHeaderID = ?
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_test on T_OrderDetailT_TestID = T_TestID
and T_OrderDetailIsActive = 'Y' and T_TestIsActive = 'Y'
join t_testcalculation on T_TestNat_TestID = T_TestCalculationNat_TestID
and T_TestCalculationIsActive = 'Y'
and (
T_TestCalculationNat_SexID = M_PatientM_SexID
or
T_TestCalculationNat_SexID = 0
)
";
$sql_det = "select T_TestCalculationDetailCode, T_OrderDetailResult
from
t_testcalculation_detail td
join t_testcalculation on T_TestCalculationID = T_TestCalculationDetailT_TestCalculationID
and T_TestCalculationID = ?
join t_test t on td.T_TestCalculationDetailNat_TestID = T_TestNat_TestID
left join t_orderdetail on T_TestID = T_OrderDetailT_TestID and T_OrderDetailIsActive = 'Y'
and T_OrderDetailT_OrderHeaderID = ?
where T_OrderDetailID is not null";
$qry = $this->db->query($sql, array($id));
$rows = $qry->result_array();
if ( count($rows) > 0 ) {
foreach($rows as $r) {
if (false && $r["T_OrderDetailResult"] != "") continue;
$tc_id = $r["T_TestCalculationID"];
$qry_det = $this->db->query($sql_det, array($tc_id, $id));
$drows = $qry_det->result_array();
$formula = $r["T_TestCalculationFormula"];
$have_all = true;
$have_one = false;
$formula = str_replace("AGE",$r["AgeInYear"], $formula);
foreach($drows as $dr) {
if($dr["T_OrderDetailResult"] == "" ) {
$have_all = false;
break;
}
$have_one = true;
$code = $dr["T_TestCalculationDetailCode"];
$value = $dr["T_OrderDetailResult"];
$formula = str_replace($code, $value,$formula);
}
if ($have_all && $have_one) {
echo "Formula : $formula <br/>";
eval("\$f_value = $formula;");
$od_id = $r["T_OrderDetailID"];
$sql = "update t_orderdetail set T_OrderDetailResult = ?
where T_OrderDetailID = ?";
$this->db->query($sql, array($f_value,$od_id));
}
}
}
}
function dynamic_comparison($varleft, $op, $varright)
{
switch ($op) {
case "=":
return $varleft == $varright;
case "!=":
return $varleft != $varright;
case ">=":
return $varleft >= $varright;
case "<=":
return $varleft <= $varright;
case ">":
return $varleft > $varright;
case "<":
return $varleft < $varright;
default:
return true;
}
}
function generate_kelainan_lab_all($mgmmcuid,$limit){
$sql = "SELECT *
FROM t_orderheader
WHERE
T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y' LIMIT ? ";
$query = $this->db_onedev->query($sql,array($mgmmcuid,intval($limit)));
//echo $this->db_onedev->last_query();
$datas = $query->result_array();
foreach ($datas as $key => $value) {
$this->generate_kelainan_lab($value['T_OrderHeaderID']);
}
}
function generate_kelainan_lab($orderid)
{
$sql = "select
T_OrderHeaderID,T_OrderHeaderLabNumber,
T_TestName, T_OrderDetailID, T_OrderDetailResult, T_OrderDetailNat_MethodeID,
T_OrderDetailNat_MethodeID, T_OrderDetailNat_MethodeName,
T_OrderDetailMinValue, T_OrderDetailMaxValue, T_OrderDetailMinValueInclusive,
T_OrderDetailMaxValueInclusive,
Mcu_SummaryLabID,
Mcu_SummaryLabValue,
Mcu_SummaryLabNat_MethodeID,
Mcu_SummaryLabWithMethode,
Mcu_SummaryLabType,
Mcu_SummaryLabIsNormalValue,
Mcu_KelainanID, Mcu_KelainanName, Mcu_KelainanClasification,
Nat_TestID,
Nat_TestCode,
mcu_kelainangroup.*
from t_orderdetail
join t_orderheader on T_OrderHeaderID = {$orderid}
and T_OrderHeaderID = T_OrderDetailT_OrderHeaderID
and T_OrderDetailIsActive = 'Y'
join t_test
on T_OrderDetailT_TestID = T_TestID
join nat_test ON T_TestNat_TestID = Nat_TestID
join mcu_summarylab on T_TestNat_TestID = Mcu_SummaryLabNat_TestID AND Mcu_SummaryLabIsActive = 'Y'
join mcu_kelainan on Mcu_SummaryLabMcu_KelainanID = Mcu_KelainanID
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID";
//echo $sql;
$qry = $this->db_onedev->query($sql);
if (!$qry) {
echo $this->db_onedev->last_query();
echo json_encode([
"status" => "ERR",
"message" => "Error get order | " . $this->db_onedev->error()["message"]
]);
exit;
}
$rows = $qry->result_array();
$results = [];
foreach ($rows as $r) {
$result_value = $r['T_OrderDetailResult'];
$value_comparison = 0;
//echo $r['Mcu_SummaryLabIsNormalValue'];
$kelainan = [];
$notavailable = [];
if (trim($result_value) == 'NA') {
$notavailable = $r;
} elseif ($r['Mcu_SummaryLabIsNormalValue'] == 'Y') {
if ($r['Mcu_SummaryLabType'] == '<' || $r['Mcu_SummaryLabType'] == '<=') {
$value_comparison = $r['T_OrderDetailMinValue'];
}
if ($r['Mcu_SummaryLabType'] == '>' || $r['Mcu_SummaryLabType'] == '>=') {
$value_comparison = $r['T_OrderDetailMaxValue'];
}
/* $logData = array(
"result" => $result_value,
"comparison" => $value_comparison,
"test_name" => $r['T_TestName'],
"id" => $r['Mcu_SummaryLabID'],
"nat_testid" => $r['Nat_TestID'],
"type" => $r['Mcu_SummaryLabType'],
"hasil" => $this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)
);
echo json_encode($logData); */
if ($this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) {
//echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", ";
$kelainan = $r;
$results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']);
}
} else {
$value_comparison = $r['Mcu_SummaryLabValue'];
if ($r['Mcu_SummaryLabType'] == '!=' || $r['Mcu_SummaryLabType'] == '==') {
if ($this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) {
//echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", ";
$kelainan = $r;
$results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']);
}
} else {
if (is_numeric($result_value) && $this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) {
//echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", ";
$kelainan = $r;
$results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']);
}
}
}
// print_r($results);
$sql = "UPDATE t_kelainan_lab
SET T_KelainanLabIsActive = 'X'
WHERE
T_KelainanLabT_OrderHeaderID = {$orderid}";
$this->db_onedev->query($sql);
if (count($results) > 0) {
foreach ($results as $v_result) {
$sql_kel_lab = "SELECT *
FROM t_kelainan_lab
WHERE T_KelainanLabT_OrderDetailID = ?
GROUP BY T_KelainanLabT_OrderDetailID";
$qry_kel_lab = $this->db_onedev->query($sql_kel_lab, array($v_result['orderdetailID']));
if ($qry_kel_lab) {
$rows_kel = $qry_kel_lab->result_array();
} else {
$this->sys_error_db("select kelainan lab", $this->db_onedev);
exit;
}
if (count($rows_kel) > 0) {
// print_r($v_result['orderdetailID']);
// exit;
$sql_update_kel = "UPDATE t_kelainan_lab
SET T_KelainanLabT_OrderDetailID = {$v_result['orderdetailID']},
T_KelainanLabT_OrderHeaderID = {$v_result['orderheaderID']},
T_KelainanLabNat_TestID = {$v_result['nat_testID']},
T_KelainanLabMcu_SummaryLabID = {$v_result['mcu_summarylabID']},
T_KelainanLabCreatedUserID = 1,
T_KelainanLabIsActive = 'Y',
T_KelainanLabCreated = NOW()
WHERE T_KelainanLabID = {$rows_kel[0]['T_KelainanLabID']}";
$qry_update_kel = $this->db_onedev->query($sql_update_kel);
if (!$qry_update_kel) {
echo $this->db_onedev->last_query();
//$this->db_onedev->trans_rollback();
$this->sys_error_db('error', 'Error update lab: ' . $this->db_onedev);
exit;
}
} else {
// print_r('insert');
// exit;
$sql_insert_lab = "INSERT INTO t_kelainan_lab(
T_KelainanLabT_OrderDetailID,
T_KelainanLabT_OrderHeaderID,
T_KelainanLabNat_TestID,
T_KelainanLabMcu_SummaryLabID,
T_KelainanLabCreatedUserID,
T_KelainanLabCreated)
VALUES(
'{$v_result['orderdetailID']}',
'{$v_result['orderheaderID']}',
'{$v_result['nat_testID']}',
'{$v_result['mcu_summarylabID']}',
1,
NOW())";
$qry_insert_lab = $this->db_onedev->query($sql_insert_lab);
if (!$qry_insert_lab) {
//$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error insert kelainan lab: ' . $this->db_onedev);
exit;
}
}
}
}
$sql = "UPDATE t_kelainan_lab
SET T_KelainanLabIsActive = 'N'
WHERE
T_KelainanLabT_OrderHeaderID = {$orderid} AND T_KelainanLabIsActive = 'X'";
$this->db_onedev->query($sql);
}
}
function replace_packet($labnumber,$oldpacket_code,$newpacket_code, $userid){
$sql = " SELECT *
FROM t_packet
JOIN mgm_mcupacket ON Mgm_McuPacketT_PacketID = T_PacketID AND Mgm_McuPacketIsActive = 'Y'
JOIN t_orderheader ON T_OrderHeaderMgm_McuID = Mgm_McuPacketMgm_McuID AND T_OrderHeaderLabNumber = ?
WHERE
T_PacketSasCode = ? AND T_PacketIsActive = 'Y' LIMIT 1";
$query = $this->db_onedev->query($sql,array($labnumber,$newpacket_code));
if (!$query) {
//$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get order: ' . $this->db_onedev);
exit;
}
$data_new_packet = $query->row_array();
if($data_new_packet){
$sql = " SELECT *
FROM t_orderheader
JOIN t_orderdetailorder ON T_OrderDetailOrderT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailOrderIsActive = 'Y' AND
T_OrderDetailOrderIsPacket = 'Y'
JOIN t_packet ON T_PacketSasCode = ? AND T_OrderDetailOrderT_PacketID = T_PacketID
WHERE
T_OrderHeaderLabNumber = ? LIMIT 1";
$query = $this->db_onedev->query($sql,array($oldpacket_code,$labnumber));
//echo $this->db_onedev->last_query();
if (!$query) {
//$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get order: ' . $this->db_onedev);
exit;
}
//echo $this->db_onedev->last_query();
$order = $query->row_array();
if($order){
$this->db_onedev->trans_begin();
$new_packet_id = $data_new_packet['T_PacketID'];
$old_packet_id = $order['T_PacketID'];
//INSERT NEW PACKET INTO ORDER DETAIL ORDER
$sql = "INSERT INTO t_orderdetailorder (
T_OrderDetailOrderT_OrderHeaderID,
T_OrderDetailOrderIsPacket,
T_OrderDetailOrderPacketType,
T_OrderDetailOrderT_PacketID,
T_OrderDetailOrderT_PacketName,
T_OrderDetailOrderCreated,
T_OrderDetailOrderCreatedUserID
)
VALUES(?,'Y',?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$data_new_packet['T_PacketType'],
$data_new_packet['T_PacketID'],
$data_new_packet['T_PacketName'],
$userid
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error insert new packet into orderdetail order: ' . $this->db_onedev);
exit;
}
$new_orderdetail_orderid = $this->db_onedev->insert_id();
$sql = "SELECT *
FROM t_packetdetail
JOIN t_test ON T_PacketDetailT_TestID = T_TestID
WHERE
T_PacketDetailT_PacketID = ? AND
T_PacketDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array($new_packet_id));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get packet detail: ' . $this->db_onedev);
exit;
}
$packet_details = $query->result_array();
foreach ($packet_details as $key => $value) {
$data_detail = [];
$sql = "SELECT *
FROM t_orderdetail
WHERE
T_OrderDetailT_OrderHeaderID = ? AND
T_OrderDetailT_OrderDetailOrderID = ? AND
T_OrderDetailT_TestID = ? AND
T_OrderDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array($order['T_OrderHeaderID'],$order['T_OrderDetailOrderID'],$value['T_PacketDetailT_TestID']));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get packet detail: ' . $this->db_onedev);
exit;
}
//echo $this->db_onedev->last_query();
$data_detail = $query->result_array();
$orderdetail_sascode = $value['T_TestSasCode']."%";
//echo "exist-order-lama-".count($data_detail);
if(count($data_detail) > 0){
// UPDATE order detail lama diganti orderdetailt_orderdetailorderid baru
$detail = $data_detail[0];
$sql = "UPDATE t_orderdetail SET
T_OrderDetailT_OrderDetailOrderID = ?,
T_OrderDetailLastUpdatedUserID = ?
WHERE
T_OrderDetailT_OrderDetailOrderID = ? AND
T_OrderDetailT_TestSasCode LIKE ?
";
$query = $this->db_onedev->query($sql,array(
$new_orderdetail_orderid,
$userid,
$order['T_OrderDetailOrderID'],
$orderdetail_sascode
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error update order detail: ' . $this->db_onedev);
exit;
}
}else{
//insert ke orderdetail jika tidak ditemukan
$sql = "INSERT INTO t_orderdetail (
T_OrderDetailT_OrderHeaderID,
T_OrderDetailT_OrderDetailOrderID,
T_OrderDetailT_TestID,
T_OrderDetailT_TestCode,
T_OrderDetailT_TestSasCode,
T_OrderDetailT_TestName,
T_OrderDetailT_TestIsResult,
T_OrderDetailT_TestIsPanel,
T_OrderDetailT_TestIsPrice,
T_OrderDetailPrice,
T_OrderDetailTotal,
T_OrderDetailCreated,
T_OrderDetailCreatedUserID
)
SELECT ?,
?,
T_TestID,
T_TestCode,
T_TestSasCode,
T_TestName,
T_TestIsResult,
'N',
T_TestIsPrice,
if(T_TestSasCode = ?, ?,0),
if(T_TestSasCode = ?, ?,0),
NOW(),
?
FROM t_test
WHERE
T_TestSasCode LIKE ?
";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$new_orderdetail_orderid,
$value['T_TestSasCode'],
$value['T_PacketDetailPrice'],
$value['T_TestSasCode'],
$value['T_PacketDetailPrice'],
$userid,
$orderdetail_sascode
));
//echo $this->db_onedev->last_query();
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error insert order detail: ' . $this->db_onedev);
exit;
}
}
}
//update isactive = N test lama yg tdk ada di paket baru
$sql = "UPDATE t_orderdetail SET T_OrderDetailIsActive = 'N', T_OrderDetailDeleted = NOW(), T_OrderDetailDeletedUserID = ?
WHERE
T_OrderDetailT_OrderDetailOrderID = ? AND T_OrderDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array(
$userid,
$order['T_OrderDetailOrderID']
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error update isactive N order detail: ' . $this->db_onedev);
exit;
}
$sql = "UPDATE t_orderdetailorder SET T_OrderDetailOrderIsActive = 'N', T_OrderDetailOrderDeleted = NOW(), T_OrderDetailOrderDeletedUserID = ?
WHERE
T_OrderDetailOrderID = ?";
$query = $this->db_onedev->query($sql,array(
$userid,
$order['T_OrderDetailOrderID']
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error update isactive N order detail order: ' . $this->db_onedev);
exit;
}
$sql = "SELECT T_SampleStationID, M_LocationID
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y'
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_SampleStationIsActive = 'Y'
JOIN m_location ON M_LocationT_SampleStationID = T_SampleStationID AND M_LocationIsActive = 'Y'
WHERE
T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y'
GROUP BY T_SampleStationID ";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get station: ' . $this->db_onedev);
exit;
}
$order_locations = $query->result_array();
if(count($order_locations) > 0){
$sql = "UPDATE t_order_location SET T_OrderLocationIsActive = 'X' WHERE T_OrderLocationT_OrderHeaderID = ? AND T_OrderLocationIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
foreach ($order_locations as $k => $v) {
$exist_order_location = [];
$sql = " SELECT *
FROM t_order_location
WHERE
T_OrderLocationT_OrderHeaderID = ? AND
T_OrderLocationT_SampleStationID= ? AND
T_OrderLocationM_LocationID = ? AND
T_OrderLocationIsActive = 'X' LIMIT 1";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$v['T_SampleStationID'],
$v['M_LocationID']
));
$dt_exist_order_location = $query->result_array();
if(count($dt_exist_order_location) > 0){
$exist_order_location = $dt_exist_order_location[0];
$sql = "UPDATE t_order_location SET T_OrderLocationIsActive = 'Y' WHERE T_OrderLocationID = ? ";
$query = $this->db_onedev->query($sql,array(
$exist_order_location['T_OrderLocationID']
));
}else{
$sql = "INSERT INTO t_order_location (
T_OrderLocationT_OrderHeaderID,
T_OrderLocationM_LocationID,
T_OrderLocationT_SampleStationID,
T_OrderLocationCreated,
T_OrderLocationUserID
)
VALUES(?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$v['M_LocationID'],
$v['T_SampleStationID'],
$userid
));
}
}
$sql = "UPDATE t_order_location SET T_OrderLocationIsActive = 'N', T_OrderLocationUserID = ? WHERE T_OrderLocationT_OrderHeaderID = ? AND T_OrderLocationIsActive = 'X'";
$query = $this->db_onedev->query($sql,array(
$userid,
$order['T_OrderHeaderID']
));
}
$sql = "SELECT T_OrderHeaderLabNumber, T_TestID, T_SampleTypeID , T_SampleTypeSuffix, T_SampleStationIsNonLab, T_SampleStationID
FROM t_orderheader
JOIN t_orderdetail ON t_orderheaderid = t_orderdetailt_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 AND Group_resultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab= 'N'
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
WHERE T_OrderHeaderID = ?
GROUP BY T_SampleTypeID";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
$order_samples = $query->result_array();
if($order_samples){
$sql = "UPDATE t_ordersample SET T_OrderSampleIsActive = 'X'
WHERE
T_OrderSampleT_OrderHeaderID = ? AND T_OrderSampleIsActive = 'Y'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
foreach ($order_samples as $sample) {
$exist_sample = [];
$sql = "SELECT *
FROM t_ordersample
WHERE
T_OrderSampleT_OrderHeaderID = ? AND
T_OrderSampleT_SampleTypeID = ? AND
T_OrderSampleIsActive = 'X'";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$sample['T_SampleTypeID']
));
//echo $this->db_onedev->last_query();
$dt_exist_sample = $query->result_array();
if(count($dt_exist_sample) > 0){
$exist_sample = $dt_exist_sample[0];
$sql = "UPDATE t_ordersample SET T_OrderSampleIsActive = 'Y' WHERE T_OrderSampleID = ?";
$query = $this->db_onedev->query($sql,array(
$exist_sample['T_OrderSampleID']
));
//echo $this->db_onedev->last_query();
}else{
$barcode = $labnumber . $sample['T_SampleTypeSuffix']."1";
$sql = "INSERT INTO t_barcodelab(
T_BarcodeLabT_OrderHeaderID,
T_BarcodeLabBarcode,
T_BarcodeLabT_SampleTypeID,
T_BarcodeLabCounter,
T_BarcodeLabCreated,
T_BarcodeLabCreatedUserID)
VALUES (?,?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$barcode,
$sample['T_SampleTypeID'],
"1",
$userid
));
$last_id_barcode = $this->db_onedev->insert_id();
$sql = "INSERT INTO t_ordersample(
T_OrderSampleT_OrderHeaderID,
T_OrderSampleT_SampleTypeID,
T_OrderSampleT_BarcodeLabID,
T_OrderSampleBarcode,
T_OrderSampleT_SampleStationID,
T_OrderSampleCreated,
T_OrderSampleCreatedUserID)
VALUES(
?,?,?,?,?,NOW(),?
)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$sample['T_SampleTypeID'],
$last_id_barcode,
$barcode,
$sample['T_SampleStationID'],
$userid
));
//echo $this->db_onedev->last_query();
}
}
$sql = "UPDATE t_ordersample SET T_OrderSampleIsActive = 'N'
WHERE
T_OrderSampleT_OrderHeaderID = ? AND T_OrderSampleIsActive = 'X'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
}
$sql = "SELECT *
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN nonlab_template_mapping ON NonlabTemplateMappingNat_TestID = T_TestNat_TestID AND NonlabTemplateMappingIsActive = 'Y'
JOIN nonlab_template ON NonlabTemplateMappingNonlabTemplateID = NonlabTemplateID AND NonlabTemplateIsActive = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
WHERE
T_OrderDetailT_OrderHeaderID = {$order['T_OrderHeaderID']} AND T_OrderDetailIsActive = 'Y'
GROUP BY T_TestID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$order_nonlab = $query->result_array();
if(count($order_nonlab) > 0){
$sql = "UPDATE so_resultentry SET So_ResultEntryIsActive = 'X'
WHERE
So_ResultEntryT_OrderHeaderID = ? AND So_ResultEntryIsActive = 'Y'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
foreach ($order_nonlab as $nonlab) {
$exist_so = [];
$sql = "SELECT *
FROM so_resultentry
WHERE
So_ResultEntryT_OrderHeaderID = ? AND
So_ResultEntryT_OrderDetailID = ? AND
So_ResultEntryIsActive = 'X'";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$nonlab['T_OrderDetailID']
));
$dt_exist_so = $query->result_array();
if(count($dt_exist_so) > 0){
$exist_so = $dt_exist_so[0];
$sql = "UPDATE so_resultentry SET So_ResultEntryIsActive = 'Y'
WHERE
So_ResultEntryID = ? AND So_ResultEntryIsActive = 'X'";
$this->db_onedev->query($sql,array(
$exist_so['So_ResultEntryID']
));
}
}
$sql = "UPDATE so_resultentry SET So_ResultEntryIsActive = 'N'
WHERE
So_ResultEntryT_OrderHeaderID = ? AND So_ResultEntryIsActive = 'X'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
}
$results = ["status" => true, "msg" => "Ganti Paket Berhasil"];
}else{
$results = ["status" => false, "msg" => "Gagal ganti paket, kode paket tidak ditemukan"];
}
$this->db_onedev->trans_commit();
}
echo json_encode($results);
}
}

View File

@@ -0,0 +1,950 @@
<?php
class Test extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
}
function index() {
$this->load->library("Resultcalc");
$id = 946;
$rows = $this->resultcalc->auto($id);
echo "<pre> $rows";
}
function generatessprice($mgmmcuid){
$this->load->library('SsPriceMou');
$this->sspricemou->create($mgmmcuid);
echo "selesai";
}
function genqrcode($nomorlab,$id){
$this->load->library('ciqrcode'); //pemanggilan library QR CODE
$home_dir = "/home/one/project/one/";
$target_dir = $home_dir . "one-media/one-qrcontrolcard/";
$config['cacheable'] = false; //boolean, the default is true
//$config['cachedir'] = './assets/'; //string, the default is application/cache/
//$config['errorlog'] = './assets/'; //string, the default is application/logs/
$config['imagedir'] = $target_dir; //direktori penyimpanan qr code
$config['quality'] = true; //boolean, the default is true
$config['size'] = '1024'; //interger, the default is 1024
$config['black'] = array(224,255,255); // array, default is array(255,255,255)
$config['white'] = array(70,130,180); // array, default is array(0,0,0)
$this->ciqrcode->initialize($config);
$image_name="qrcode_".$nomorlab.".png"; //buat name dari qr code sesuai dengan nim
$params['data'] = "http://devcpone.aplikasi.web.id/one-ui/test/vuex/cpone-control-card/?noreg=".$nomorlab."&id=".$id; //data yang akan di jadikan QR CODE
$params['level'] = 'H'; //H=High
$params['size'] = 10;
$params['savename'] = $config['imagedir'].$image_name; //simpan image QR CODE ke folder assets/images/
$this->ciqrcode->generate($params); // fungsi untuk generate QR CODE
echo "http://devcpone.aplikasi.web.id/one-api/assets/images/".$image_name;
}
function gen_kesimpulan_fisik($id){
$this->load->library('kesimpulanfisik');
$kesimpulan = $this->kesimpulanfisik->kesimpulan($id);
echo $kesimpulan;
}
function generate_kelainan_fisik_bydate($stardate,$endate){
$sql = "SELECT *
FROM so_resultentry
JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y' AND
( DATE(T_OrderHeaderDate) BETWEEN ? AND ? ) AND T_OrderHeaderIsActive = 'Y'
WHERE
So_ResultEntryNonlab_TemplateID = 27 AND So_ResultEntryIsActive = 'Y'
";
$query = $this->db_onedev->query($sql,array($stardate,$endate));
//echo $this->db_onedev->last_query();
$datas = $query->result_array();
foreach ($datas as $key => $value) {
$this->gen_kelainan_fisik($value['So_ResultEntryID']);
}
}
/*function gen_kelainan_fisik_all($mgmmcuid,$limit){
$this->load->library('kesimpulanfisik');
$kesimpulan = $this->kesimpulanfisik->generate_all_kelainan_fisik($mgmmcuid,$limit);
echo json_encode($kesimpulan);
}
function gen_kelainan_fisik($id){
$this->load->library('kesimpulanfisik');
$kesimpulan = $this->kesimpulanfisik->generate_kelainan_fisik($id);
echo json_encode($kesimpulan);
}
function gen_nonlab_template($id){
$this->load->library('nonlabtemplate');
$kesimpulan = $this->nonlabtemplate->generate($id);
print_r($kesimpulan);
}*/
function genpatientqrcode($nomorlab){
$this->load->library('ciqrcode'); //pemanggilan library QR CODE
$home_dir = "/home/one/project/one/";
$target_dir = $home_dir . "one-media/one-qrpatient/";
$config['cacheable'] = false; //boolean, the default is true
//$config['cachedir'] = './assets/'; //string, the default is application/cache/
//$config['errorlog'] = './assets/'; //string, the default is application/logs/
$config['imagedir'] = $target_dir; //direktori penyimpanan qr code
$config['quality'] = true; //boolean, the default is true
$config['size'] = '1024'; //interger, the default is 1024
$config['black'] = array(224,255,255); // array, default is array(255,255,255)
$config['white'] = array(70,130,180); // array, default is array(0,0,0)
$this->ciqrcode->initialize($config);
$image_name="patient_qr_".$nomorlab.".png"; //buat name dari qr code sesuai dengan nim
$params['data'] = $nomorlab; //data yang akan di jadikan QR CODE
$params['level'] = 'H'; //H=High
$params['size'] = 10;
$params['savename'] = $config['imagedir'].$image_name; //simpan image QR CODE ke folder assets/images/
$this->ciqrcode->generate($params); // fungsi untuk generate QR CODE
echo "https://devcpone.aplikasi.web.id/one-media/one-qrpatient/".$image_name;
//echo "selesai";
}
function truncatextable(){
$this->db = $this->load->database("onedev",true);
$xgroup= array('PRICE','ORDER');
$where_in = "";
foreach ($xgroup as $key => $value) {
if($where_in != "") $where_in .= " or ";
$where_in .= "X_TableTransactionGroupName = '".$value."'";
}
$sql = "SELECT * FROM x_table_transaction
WHERE
X_TableTransactionIsActive = 'Y' AND ( $where_in )";
//echo $sql;
$data_tables = $this->db->query($sql)->result_array();
foreach($data_tables as $k => $v){
$sql = "TRUNCATE TABLE {$v['X_TableTransactionTableName']}";
//echo $sql;
//$this->db->query($sql);
}
echo 'selesai';
}
function exporttoxls(){
$this->db = $this->load->database("onedev",true);
$sql = "SELECT * FROM xtable";
$data_asal = $this->db->query($sql)->result_array();
foreach($data_asal as $k => $v){
$xplode = explode(' ',$v['TANGGAL_LAHIR']);
$tgl = sprintf("%02d", $xplode[0]);
$bln = $this->monthtonumber($xplode[1]);
$thn = $xplode[2];
$xdate = $tgl.'-'.$bln.'-'.$thn;
$sql = "UPDATE xtable SET TANGGAL_LAHIR_INA = '{$xdate}' WHERE id = {$v['id']}";
$this->db->query($sql);
}
echo 'selesai';
}
function monthtonumber($xmonth){
$rst = 0;
if($xmonth == 'Januari')
$rst = '01';
if($xmonth == 'Februari')
$rst = '02';
if($xmonth == 'Maret')
$rst = '03';
if($xmonth == 'April')
$rst = '04';
if($xmonth == 'Mei')
$rst = '05';
if($xmonth == 'Juni')
$rst = '06';
if($xmonth == 'Juli')
$rst = '07';
if($xmonth == 'Agustus')
$rst = '08';
if($xmonth == 'September')
$rst = '09';
if($xmonth == 'Oktober')
$rst = '10';
if($xmonth == 'November')
$rst = '11';
if($xmonth == 'Desember')
$rst = '12';
return $rst;
}
function two() {
$this->db = $this->load->database("onedev",true);
$id = 946;
$sql = "select
T_TestCalculationID,T_TestCalculationFormula,
T_OrderDetailID, T_OrderDetailT_TestID, T_TestNat_TestID,
T_TestCalculationID,T_OrderDetailResult,
fn_global_age_count_day(M_PatientDOB, date(T_OrderHeaderDate)) / 365 AgeInYear,
T_TestCalculationNat_SexID
from t_orderdetail
join t_orderheader on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
and T_OrderHeaderID = ?
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join t_test on T_OrderDetailT_TestID = T_TestID
and T_OrderDetailIsActive = 'Y' and T_TestIsActive = 'Y'
join t_testcalculation on T_TestNat_TestID = T_TestCalculationNat_TestID
and T_TestCalculationIsActive = 'Y'
and (
T_TestCalculationNat_SexID = M_PatientM_SexID
or
T_TestCalculationNat_SexID = 0
)
";
$sql_det = "select T_TestCalculationDetailCode, T_OrderDetailResult
from
t_testcalculation_detail td
join t_testcalculation on T_TestCalculationID = T_TestCalculationDetailT_TestCalculationID
and T_TestCalculationID = ?
join t_test t on td.T_TestCalculationDetailNat_TestID = T_TestNat_TestID
left join t_orderdetail on T_TestID = T_OrderDetailT_TestID and T_OrderDetailIsActive = 'Y'
and T_OrderDetailT_OrderHeaderID = ?
where T_OrderDetailID is not null";
$qry = $this->db->query($sql, array($id));
$rows = $qry->result_array();
if ( count($rows) > 0 ) {
foreach($rows as $r) {
if (false && $r["T_OrderDetailResult"] != "") continue;
$tc_id = $r["T_TestCalculationID"];
$qry_det = $this->db->query($sql_det, array($tc_id, $id));
$drows = $qry_det->result_array();
$formula = $r["T_TestCalculationFormula"];
$have_all = true;
$have_one = false;
$formula = str_replace("AGE",$r["AgeInYear"], $formula);
foreach($drows as $dr) {
if($dr["T_OrderDetailResult"] == "" ) {
$have_all = false;
break;
}
$have_one = true;
$code = $dr["T_TestCalculationDetailCode"];
$value = $dr["T_OrderDetailResult"];
$formula = str_replace($code, $value,$formula);
}
if ($have_all && $have_one) {
echo "Formula : $formula <br/>";
eval("\$f_value = $formula;");
$od_id = $r["T_OrderDetailID"];
$sql = "update t_orderdetail set T_OrderDetailResult = ?
where T_OrderDetailID = ?";
$this->db->query($sql, array($f_value,$od_id));
}
}
}
}
function dynamic_comparison($varleft, $op, $varright)
{
switch ($op) {
case "=":
return $varleft == $varright;
case "!=":
return $varleft != $varright;
case ">=":
return $varleft >= $varright;
case "<=":
return $varleft <= $varright;
case ">":
return $varleft > $varright;
case "<":
return $varleft < $varright;
default:
return true;
}
}
function usg_abdomen(){
$rtn = [];
$this->load->library('nonlabtemplate');
$sql = "SELECT T_SamplingSoID, T_OrderDetailID, T_OrderDetailT_OrderHeaderID, So_ResultEntryID
FROM `t_orderdetail`
JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
T_SamplingSoT_TestID = T_OrderDetailT_TestID
LEFT JOIN so_resultentry ON T_OrderDetailT_OrderHeaderID = So_ResultEntryT_OrderHeaderID AND
So_ResultEntryT_OrderDetailID = T_OrderDetailID AND so_resultentryIsActive = 'Y'
WHERE
`T_OrderDetailT_TestID` = '3385' AND So_ResultEntryID IS NULL AND
T_OrderDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql);
$datas = $query->result_array();
foreach ($datas as $key => $value) {
$kesimpulan = $this->nonlabtemplate->generate($value['T_SamplingSoID']);
$rtn[] = $kesimpulan['So_ResultEntryID'];
}
echo join(", ",$rtn);
}
function billirubin_total(){
$rtn = [];
$tests = [900,901,902];
foreach ($tests as $val) {
$sql = "SELECT *
FROM (
SELECT GROUP_CONCAT(T_OrderDetailT_TestID) as exist,
T_TestID,
T_TestCode,
T_TestName,
T_TestSasCode,
T_TestIsResult,
T_TestIsPrice,
T_OrderDetailT_OrderHeaderID,
T_OrderDetailT_OrderDetailOrderID
FROM `t_orderdetail`
JOIN t_test ON T_TestID = ?
WHERE
T_OrderDetailT_TestID IN (899,900,901,902) AND T_OrderDetailIsActive = 'Y'
GROUP BY T_OrderDetailT_OrderHeaderID
) x
WHERE
exist = '899'";
$query = $this->db_onedev->query($sql,[$val]);
//if($val == 900)
//echo $this->db_onedev->last_query();
$datas = $query->result_array();
foreach ($datas as $key => $value) {
$sql = "INSERT INTO t_orderdetail(
T_OrderDetailT_OrderHeaderID,
T_OrderDetailT_OrderDetailOrderID,
T_OrderDetailT_TestID,
T_OrderDetailT_TestCode,
T_OrderDetailT_TestSasCode,
T_OrderDetailT_TestName,
T_OrderDetailT_TestIsResult,
T_OrderDetailT_TestIsPrice,
T_OrderDetailCreatedUserID,
T_OrderDetailCreated
)
VALUES(?,?,?,?,?,?,?,?,?,NOW())";
$query = $this->db_onedev->query($sql,array(
$value['T_OrderDetailT_OrderHeaderID'],
$value['T_OrderDetailT_OrderDetailOrderID'],
$value['T_TestID'],
$value['T_TestCode'],
$value['T_TestSasCode'],
$value['T_TestName'],
$value['T_TestIsResult'],
$value['T_TestIsPrice'],
270924
));
//if($key == 0)
//echo $this->db_onedev->last_query();
$rtn[] = $this->db_onedev->insert_id();
}
}
echo json_encode($rtn);
}
function tonometri_remove(){
$rtn = [];
$sql = "SELECT So_ResultEntryID, So_ResultEntryT_OrderHeaderID
FROM `t_orderdetail`
JOIN so_resultentry ON So_ResultEntryT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
So_ResultEntryNonlab_TemplateID = 27
WHERE `T_OrderDetailT_TestName` LIKE '%tonometri%' AND `T_OrderDetailIsActive` = 'Y'";
$query = $this->db_onedev->query($sql);
if (!$query) {
//$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get order: ' . $this->db_onedev);
exit;
}
$datas = $query->result_array();
foreach ($datas as $key => $value) {
$sql = "SELECT * FROM so_resultentry_fisik_umum WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ?";
$query = $this->db_onedev->query($sql,[$value['So_ResultEntryID']]);
$xcount = $query->result_array();
if(count($xcount) == 1 && $xcount[0]['So_ResultEntryFisikUmumFisikTemplateID'] == 41){
$sql = "UPDATE so_resultentry_fisik_umum SET So_ResultEntryFisikUmumIsActive = 'N', So_ResultEntryFisikUmumDeleted = NOW(), So_ResultEntryFisikUmumDeletedUserID = 240924
WHERE So_ResultEntryFisikUmumID = ?";
$query = $this->db_onedev->query($sql,[$xcount[0]['So_ResultEntryFisikUmumID']]);
$rtn[] = $xcount[0]['So_ResultEntryFisikUmumID'];
}
}
echo join(", ",$rtn);
}
function generate_kelainan_lab_all($mgmmcuid,$limit){
$this->load->library('Etlfisik');
$sql = "SELECT *
FROM t_orderheader
WHERE
T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y' LIMIT ? ";
$query = $this->db_onedev->query($sql,array($mgmmcuid,intval($limit)));
//echo $this->db_onedev->last_query();
$datas = $query->result_array();
foreach ($datas as $key => $value) {
//$this->generate_kelainan_lab($value['T_OrderHeaderID']);
$userID = 1;
$this->etlfisik->generate_kelainan_lab($value['T_OrderHeaderID'],$userID);
}
}
function generate_all_kelainan_by_order(){
}
function generate_kelainan_fisik_all($mgmmcuid,$limit){
$this->load->library('Etlfisik');
$sql = "SELECT *
FROM t_orderheader
JOIN so_resultentry ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID AND So_ResultEntryNonlab_TemplateID = 27 AND
So_ResultEntryIsActive = 'Y'
WHERE
T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y' LIMIT ? ";
$query = $this->db_onedev->query($sql,array($mgmmcuid,intval($limit)));
//echo $this->db_onedev->last_query();
$datas = $query->result_array();
foreach ($datas as $key => $value) {
$userID = 1;
$this->generate_etl_fisik($value['T_OrderHeaderID']);
$this->generate_summaries($value['T_OrderHeaderID'], $value['So_ResultEntryID'], $userID);
}
}
function get_kelainan_order($orderID,$userID){
$this->load->library('Etlfisik');
$rtn = $this->etlfisik->generate_kelainan_by_order($orderID,$userID);
echo json_encode($rtn);
}
function generate_kelainan_non_lab_all($mgmmcuid,$limit){
$this->load->library('Etlfisik');
$sql = "SELECT *
FROM t_orderheader
WHERE
T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y' LIMIT ? ";
$query = $this->db_onedev->query($sql,array($mgmmcuid,intval($limit)));
//echo $this->db_onedev->last_query();
$datas = $query->result_array();
foreach ($datas as $key => $value) {
//$this->generate_kelainan_lab($value['T_OrderHeaderID']);
$userID = 1;
$this->etlfisik->generate_kelainan_nonlab($value['T_OrderHeaderID'],$userID);
}
}
function generate_etl_fisik($orderID){
$this->load->library('Etlfisik');
$userID = 1;
$this->etlfisik->generate_all_fisik($orderID,$userID);
}
function generate_summaries($orderID,$soReID,$userID,$debugID=0){
$this->load->library('Etlfisik');
$userID = 1;
$this->etlfisik->generate_summaries($orderID,$soReID,$userID,$debugID=0);
}
function replace_packet($labnumber,$oldpacket_code,$newpacket_code, $userid){
$sql = " SELECT *
FROM t_packet
JOIN mgm_mcupacket ON Mgm_McuPacketT_PacketID = T_PacketID AND Mgm_McuPacketIsActive = 'Y'
JOIN t_orderheader ON T_OrderHeaderMgm_McuID = Mgm_McuPacketMgm_McuID AND T_OrderHeaderLabNumber = ?
WHERE
T_PacketSasCode = ? AND T_PacketIsActive = 'Y' LIMIT 1";
$query = $this->db_onedev->query($sql,array($labnumber,$newpacket_code));
if (!$query) {
//$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get order: ' . $this->db_onedev);
exit;
}
$data_new_packet = $query->row_array();
if($data_new_packet){
$sql = " SELECT *
FROM t_orderheader
JOIN t_orderdetailorder ON T_OrderDetailOrderT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailOrderIsActive = 'Y' AND
T_OrderDetailOrderIsPacket = 'Y'
JOIN t_packet ON T_PacketSasCode = ? AND T_OrderDetailOrderT_PacketID = T_PacketID
WHERE
T_OrderHeaderLabNumber = ? LIMIT 1";
$query = $this->db_onedev->query($sql,array($oldpacket_code,$labnumber));
//echo $this->db_onedev->last_query();
if (!$query) {
//$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get order: ' . $this->db_onedev);
exit;
}
//echo $this->db_onedev->last_query();
$order = $query->row_array();
if($order){
$this->db_onedev->trans_begin();
$new_packet_id = $data_new_packet['T_PacketID'];
$old_packet_id = $order['T_PacketID'];
//INSERT NEW PACKET INTO ORDER DETAIL ORDER
$sql = "INSERT INTO t_orderdetailorder (
T_OrderDetailOrderT_OrderHeaderID,
T_OrderDetailOrderIsPacket,
T_OrderDetailOrderPacketType,
T_OrderDetailOrderT_PacketID,
T_OrderDetailOrderT_PacketName,
T_OrderDetailOrderCreated,
T_OrderDetailOrderCreatedUserID
)
VALUES(?,'Y',?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$data_new_packet['T_PacketType'],
$data_new_packet['T_PacketID'],
$data_new_packet['T_PacketName'],
$userid
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error insert new packet into orderdetail order: ' . $this->db_onedev);
exit;
}
$new_orderdetail_orderid = $this->db_onedev->insert_id();
$sql = "SELECT *
FROM t_packetdetail
JOIN t_test ON T_PacketDetailT_TestID = T_TestID
WHERE
T_PacketDetailT_PacketID = ? AND
T_PacketDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array($new_packet_id));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get packet detail: ' . $this->db_onedev);
exit;
}
$packet_details = $query->result_array();
foreach ($packet_details as $key => $value) {
$data_detail = [];
$sql = "SELECT *
FROM t_orderdetail
WHERE
T_OrderDetailT_OrderHeaderID = ? AND
T_OrderDetailT_OrderDetailOrderID = ? AND
T_OrderDetailT_TestID = ? AND
T_OrderDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array($order['T_OrderHeaderID'],$order['T_OrderDetailOrderID'],$value['T_PacketDetailT_TestID']));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get packet detail: ' . $this->db_onedev);
exit;
}
//echo $this->db_onedev->last_query();
$data_detail = $query->result_array();
$orderdetail_sascode = $value['T_TestSasCode']."%";
//echo "exist-order-lama-".count($data_detail);
if(count($data_detail) > 0){
// UPDATE order detail lama diganti orderdetailt_orderdetailorderid baru
$detail = $data_detail[0];
$sql = "UPDATE t_orderdetail SET
T_OrderDetailT_OrderDetailOrderID = ?,
T_OrderDetailLastUpdatedUserID = ?
WHERE
T_OrderDetailT_OrderDetailOrderID = ? AND
T_OrderDetailT_TestSasCode LIKE ?
";
$query = $this->db_onedev->query($sql,array(
$new_orderdetail_orderid,
$userid,
$order['T_OrderDetailOrderID'],
$orderdetail_sascode
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error update order detail: ' . $this->db_onedev);
exit;
}
}else{
//insert ke orderdetail jika tidak ditemukan
$sql = "INSERT INTO t_orderdetail (
T_OrderDetailT_OrderHeaderID,
T_OrderDetailT_OrderDetailOrderID,
T_OrderDetailT_TestID,
T_OrderDetailT_TestCode,
T_OrderDetailT_TestSasCode,
T_OrderDetailT_TestName,
T_OrderDetailT_TestIsResult,
T_OrderDetailT_TestIsPanel,
T_OrderDetailT_TestIsPrice,
T_OrderDetailPrice,
T_OrderDetailTotal,
T_OrderDetailCreated,
T_OrderDetailCreatedUserID
)
SELECT ?,
?,
T_TestID,
T_TestCode,
T_TestSasCode,
T_TestName,
T_TestIsResult,
'N',
T_TestIsPrice,
if(T_TestSasCode = ?, ?,0),
if(T_TestSasCode = ?, ?,0),
NOW(),
?
FROM t_test
WHERE
T_TestSasCode LIKE ?
";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$new_orderdetail_orderid,
$value['T_TestSasCode'],
$value['T_PacketDetailPrice'],
$value['T_TestSasCode'],
$value['T_PacketDetailPrice'],
$userid,
$orderdetail_sascode
));
//echo $this->db_onedev->last_query();
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error insert order detail: ' . $this->db_onedev);
exit;
}
}
}
//update isactive = N test lama yg tdk ada di paket baru
$sql = "UPDATE t_orderdetail SET T_OrderDetailIsActive = 'N', T_OrderDetailDeleted = NOW(), T_OrderDetailDeletedUserID = ?
WHERE
T_OrderDetailT_OrderDetailOrderID = ? AND T_OrderDetailIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array(
$userid,
$order['T_OrderDetailOrderID']
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error update isactive N order detail: ' . $this->db_onedev);
exit;
}
$sql = "UPDATE t_orderdetailorder SET T_OrderDetailOrderIsActive = 'N', T_OrderDetailOrderDeleted = NOW(), T_OrderDetailOrderDeletedUserID = ?
WHERE
T_OrderDetailOrderID = ?";
$query = $this->db_onedev->query($sql,array(
$userid,
$order['T_OrderDetailOrderID']
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error update isactive N order detail order: ' . $this->db_onedev);
exit;
}
$sql = "SELECT T_SampleStationID, M_LocationID
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y'
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_SampleStationIsActive = 'Y'
JOIN m_location ON M_LocationT_SampleStationID = T_SampleStationID AND M_LocationIsActive = 'Y'
WHERE
T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y'
GROUP BY T_SampleStationID ";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
if (!$query) {
$this->db_onedev->trans_rollback();
echo $this->db_onedev->last_query();
$this->sys_error_db('error', 'Error get station: ' . $this->db_onedev);
exit;
}
$order_locations = $query->result_array();
if(count($order_locations) > 0){
$sql = "UPDATE t_order_location SET T_OrderLocationIsActive = 'X' WHERE T_OrderLocationT_OrderHeaderID = ? AND T_OrderLocationIsActive = 'Y'";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
foreach ($order_locations as $k => $v) {
$exist_order_location = [];
$sql = " SELECT *
FROM t_order_location
WHERE
T_OrderLocationT_OrderHeaderID = ? AND
T_OrderLocationT_SampleStationID= ? AND
T_OrderLocationM_LocationID = ? AND
T_OrderLocationIsActive = 'X' LIMIT 1";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$v['T_SampleStationID'],
$v['M_LocationID']
));
$dt_exist_order_location = $query->result_array();
if(count($dt_exist_order_location) > 0){
$exist_order_location = $dt_exist_order_location[0];
$sql = "UPDATE t_order_location SET T_OrderLocationIsActive = 'Y' WHERE T_OrderLocationID = ? ";
$query = $this->db_onedev->query($sql,array(
$exist_order_location['T_OrderLocationID']
));
}else{
$sql = "INSERT INTO t_order_location (
T_OrderLocationT_OrderHeaderID,
T_OrderLocationM_LocationID,
T_OrderLocationT_SampleStationID,
T_OrderLocationCreated,
T_OrderLocationUserID
)
VALUES(?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$v['M_LocationID'],
$v['T_SampleStationID'],
$userid
));
}
}
$sql = "UPDATE t_order_location SET T_OrderLocationIsActive = 'N', T_OrderLocationUserID = ? WHERE T_OrderLocationT_OrderHeaderID = ? AND T_OrderLocationIsActive = 'X'";
$query = $this->db_onedev->query($sql,array(
$userid,
$order['T_OrderHeaderID']
));
}
$sql = "SELECT T_OrderHeaderLabNumber, T_TestID, T_SampleTypeID , T_SampleTypeSuffix, T_SampleStationIsNonLab, T_SampleStationID
FROM t_orderheader
JOIN t_orderdetail ON t_orderheaderid = t_orderdetailt_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 AND Group_resultDetailIsActive = 'Y'
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab= 'N'
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
WHERE T_OrderHeaderID = ?
GROUP BY T_SampleTypeID";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
$order_samples = $query->result_array();
if($order_samples){
$sql = "UPDATE t_ordersample SET T_OrderSampleIsActive = 'X'
WHERE
T_OrderSampleT_OrderHeaderID = ? AND T_OrderSampleIsActive = 'Y'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
foreach ($order_samples as $sample) {
$exist_sample = [];
$sql = "SELECT *
FROM t_ordersample
WHERE
T_OrderSampleT_OrderHeaderID = ? AND
T_OrderSampleT_SampleTypeID = ? AND
T_OrderSampleIsActive = 'X'";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$sample['T_SampleTypeID']
));
//echo $this->db_onedev->last_query();
$dt_exist_sample = $query->result_array();
if(count($dt_exist_sample) > 0){
$exist_sample = $dt_exist_sample[0];
$sql = "UPDATE t_ordersample SET T_OrderSampleIsActive = 'Y' WHERE T_OrderSampleID = ?";
$query = $this->db_onedev->query($sql,array(
$exist_sample['T_OrderSampleID']
));
//echo $this->db_onedev->last_query();
}else{
$barcode = $labnumber . $sample['T_SampleTypeSuffix']."1";
$sql = "INSERT INTO t_barcodelab(
T_BarcodeLabT_OrderHeaderID,
T_BarcodeLabBarcode,
T_BarcodeLabT_SampleTypeID,
T_BarcodeLabCounter,
T_BarcodeLabCreated,
T_BarcodeLabCreatedUserID)
VALUES (?,?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$barcode,
$sample['T_SampleTypeID'],
"1",
$userid
));
$last_id_barcode = $this->db_onedev->insert_id();
$sql = "INSERT INTO t_ordersample(
T_OrderSampleT_OrderHeaderID,
T_OrderSampleT_SampleTypeID,
T_OrderSampleT_BarcodeLabID,
T_OrderSampleBarcode,
T_OrderSampleT_SampleStationID,
T_OrderSampleCreated,
T_OrderSampleCreatedUserID)
VALUES(
?,?,?,?,?,NOW(),?
)";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$sample['T_SampleTypeID'],
$last_id_barcode,
$barcode,
$sample['T_SampleStationID'],
$userid
));
//echo $this->db_onedev->last_query();
}
}
$sql = "UPDATE t_ordersample SET T_OrderSampleIsActive = 'N'
WHERE
T_OrderSampleT_OrderHeaderID = ? AND T_OrderSampleIsActive = 'X'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
}
$sql = "SELECT *
FROM t_orderdetail
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
JOIN nonlab_template_mapping ON NonlabTemplateMappingNat_TestID = T_TestNat_TestID AND NonlabTemplateMappingIsActive = 'Y'
JOIN nonlab_template ON NonlabTemplateMappingNonlabTemplateID = NonlabTemplateID AND NonlabTemplateIsActive = 'Y'
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y'
WHERE
T_OrderDetailT_OrderHeaderID = {$order['T_OrderHeaderID']} AND T_OrderDetailIsActive = 'Y'
GROUP BY T_TestID";
// echo $sql;
$query = $this->db_onedev->query($sql);
$order_nonlab = $query->result_array();
if(count($order_nonlab) > 0){
$sql = "UPDATE so_resultentry SET So_ResultEntryIsActive = 'X'
WHERE
So_ResultEntryT_OrderHeaderID = ? AND So_ResultEntryIsActive = 'Y'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
foreach ($order_nonlab as $nonlab) {
$exist_so = [];
$sql = "SELECT *
FROM so_resultentry
WHERE
So_ResultEntryT_OrderHeaderID = ? AND
So_ResultEntryT_OrderDetailID = ? AND
So_ResultEntryIsActive = 'X'";
$query = $this->db_onedev->query($sql,array(
$order['T_OrderHeaderID'],
$nonlab['T_OrderDetailID']
));
$dt_exist_so = $query->result_array();
if(count($dt_exist_so) > 0){
$exist_so = $dt_exist_so[0];
$sql = "UPDATE so_resultentry SET So_ResultEntryIsActive = 'Y'
WHERE
So_ResultEntryID = ? AND So_ResultEntryIsActive = 'X'";
$this->db_onedev->query($sql,array(
$exist_so['So_ResultEntryID']
));
}
}
$sql = "UPDATE so_resultentry SET So_ResultEntryIsActive = 'N'
WHERE
So_ResultEntryT_OrderHeaderID = ? AND So_ResultEntryIsActive = 'X'";
$this->db_onedev->query($sql,array(
$order['T_OrderHeaderID']
));
}
$results = ["status" => true, "msg" => "Ganti Paket Berhasil"];
}else{
$results = ["status" => false, "msg" => "Gagal ganti paket, kode paket tidak ditemukan"];
}
$this->db_onedev->trans_commit();
}
echo json_encode($results);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
<?php
$servername = "192.168.250.201";
$username = "root";
$password = "pramita102938";
// Create connection
$conn = new mysqli($servername, $username, $password);
$db = mysql_select_db("one");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
else{
echo "Connected successfully";
$sql = "SELECT * FROM m_menu";
$result=mysql_query($sql,$conn);
$row = mysql_fetch_row($result);
print_r($row);
}
?>

View File

@@ -0,0 +1,70 @@
<?php
class Updatequery extends MY_Controller
{
function donow(){
$array_db = array(
'riau',
'pajajaran',
'toha',
'cimahi',
'ngagel',
'aditya',
'jemur',
'mulyo',
'parkus',
'hrm',
'cikditiro',
'sultan_agung',
'matraman',
'bonjer',
'samanhudi',
'ragunan',
'cirebon',
'veteran',
'dahlan',
'plaju',
'diponegoro',
'yamin',
'padang',
'tegal',
'manado',
'pontianak',
'sudirman',
'magelang',
'salatiga',
'semarang',
'balikpapan',
'madiun',
'makasar',
'denpasar',
'tasik',
'dupang',
'wonokusumo',
'tangkuban_perahu',
'ciliwung',
'kediri',
'jember' );
foreach($array_db as $k => $v){
$this->dbx = $this->load->database($v, true);
/*$sql = "UPDATE s_menu SET S_MenuUrl = 'test/vuex/one-fo-verification-v9/'
WHERE
`S_MenuUrl` LIKE '%test/vuex/one-fo-verification%'";*/
$query = $this->dbx->query($sql);
if ($query) {
//$rows = $query->row()->xcount;
echo $v."-OK ";
}
else{
echo $v."-ERROR ";
}
}
}
}
?>

View File

@@ -0,0 +1,68 @@
<?php
class Updatequery_fitri extends MY_Controller
{
function donow(){
$array_db = array('riau',
'pajajaran',
'toha',
'cimahi',
'ngagel',
'aditya',
'jemur',
'mulyo',
'parkus',
'hrm',
'cikditiro',
'sultan_agung',
'matraman',
'bonjer',
'samanhudi',
'ragunan',
'cirebon',
'veteran',
'dahlan',
'plaju',
'diponegoro',
'yamin',
'padang',
'tegal',
'manado',
'pontianak',
'sudirman',
'magelang',
'salatiga',
'semarang',
'balikpapan',
'madiun',
'makasar',
'denpasar',
'tasik',
'dupang',
'wonokusumo',
'tangkuban_perahu',
'ciliwung',
'kediri',
'jember' );
foreach($array_db as $k => $v){
$this->dbx = $this->load->database($v, true);
$sql = "INSERT INTO `s_menu` (`S_MenuName`, `S_MenuUrl`, `S_MenuIcon`, `S_MenuParentS_MenuID`, `S_MenuLevel`, `S_MenuIsParent`, `S_MenuOrder`, `S_MenuIsActive`, `S_MenuCreated`, `S_MenuLastUpdated`)
VALUES ('Bank', 'test/vuex/one-md-bank/', NULL, '68', '2', 'N', '40', 'Y', now(), now());";
$query = $this->dbx->query($sql);
if ($query) {
//$rows = $query->row()->xcount;
echo $v."-OK ";
}
else{
echo $v."-ERROR ";
}
}
}
}
?>

View File

@@ -0,0 +1,76 @@
<?php
class Updatequeryregional extends MY_Controller
{
function donow(){
$array_db = array(
'reg_bandung',
'reg_tegal',
'reg_manado',
'reg_pontianak',
'reg_surabaya',
'reg_yogya',
'reg_jakarta',
'reg_cirebon',
'reg_palembang',
'reg_medan',
'reg_padang',
'reg_pekanbaru',
'reg_magelang',
'reg_salatiga',
'reg_semarang',
'reg_balikpapan',
'reg_madiun',
'reg_makasar',
'reg_denpasar',
'reg_tasik',
'reg_prospek',
'reg_sima_malang',
'reg_sima_kediri',
'reg_sima_jember'
);
foreach($array_db as $k => $v){
$this->dbx = $this->load->database($v, true);
/*$sql = "UPDATE s_menu SET S_MenuUrl = 'test/vuex/one-sample-storage-destroy-v2/'
WHERE
`S_MenuName` = 'TPS'";yamin error*/
//begin update preparasi sperma sbmnya, re = 18, rever = 16, reval = 16
/*$sql = "UPDATE s_menu SET S_MenuUrl = 'test/vuex/one-process-resultentry-v19/'
WHERE
`S_MenuName` = 'Result Entry'";
$query = $this->dbx->query($sql);*/
/*$sql = "UPDATE s_menu SET S_MenuUrl = 'test/vuex/one-process-resultverification-v20/'
WHERE
`S_MenuName` = 'Result Verification'";
$query = $this->dbx->query($sql);
$sql = "UPDATE s_menu SET S_MenuUrl = 'test/vuex/one-process-resultvalidation-v18/'
WHERE
`S_MenuName` = 'Result Validation'";
$query = $this->dbx->query($sql);*/
//end update preparasi sperma
/*$sql = "ALTER TABLE `t_samplestoragedestroy`
CHANGE `T_SampleStorageDestroySampleWeight` `T_SampleStorageDestroySampleWeight` float(11,2)
NOT NULL AFTER `T_SampleStorageDestroyFlagEmpty`";*/
/*$sql = "ALTER TABLE `t_samplestoragedestroy_detailnonsample`
CHANGE `T_SampleStorageDestroyDetailNonSampleWeight` `T_SampleStorageDestroyDetailNonSampleWeight` float(11,2)
NOT NULL AFTER `T_SampleStorageDestroyDetailNonSampleT_SampleStorageDestroyID`";*/
/*$sql = " UPDATE `lcprep_interpretasi` SET `Lcprep_InterpretasiCode` = '4203' WHERE `Lcprep_InterpretasiID` = '18';
UPDATE `lcprep_interpretasi` SET `Lcprep_InterpretasiCode` = '4202' WHERE `Lcprep_InterpretasiID` = '39';*/
$query = $this->dbx->query($sql);
if ($query) {
//$rows = $query->row()->xcount;
echo $v."-OK ";
}
else{
echo $v."-ERROR ";
}
}
}
}
?>

View File

@@ -0,0 +1,25 @@
<?php
class Xno extends CI_Controller
{
function index() {
echo "API";
}
function show($noreg) {
$this->db_onedev = $this->load->database("onedev", true);
$get_digit = substr($noreg,3,5);
$pre = substr($noreg,0,3);
$post = substr($noreg,-2);
if (is_numeric($get_digit)) return $noreg;
$sql = "select numberMapOrigin from number_map where numberMapTarget = ?";
$qry = $this->db_onedev->query($sql, array($get_digit));
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$new_digit = $rows[0]["numberMapOrigin"];
echo $pre . $new_digit . $post;
exit;
}
}
echo $noreg;
}
}

View File

@@ -0,0 +1,38 @@
<?php
class Xno extends CI_Controller
{
function index() {
echo "API";
}
function show($noreg) {
$this->db_onedev = $this->load->database("onedev", true);
//000 00014 DA
$flag_convert = false;
$get_digit = $noreg;
if ( strlen($noreg) == 10 ) {
$get_digit = substr($noreg,3,5);
$pre = substr($noreg,0,3);
$post = substr($noreg,-2);
$flag_convert = true ;
}
if ( strlen($noreg) == 7 ) {
$get_digit = substr($noreg,0,5);
$post = substr($noreg,-2);
$pre = "";
$flag_convert = true ;
}
if (is_numeric($get_digit)) return $noreg;
$sql = "select numberMapOrigin from number_map where numberMapTarget = ?";
$qry = $this->db_onedev->query($sql, array($get_digit));
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$new_digit = $rows[0]["numberMapOrigin"];
echo $pre . $new_digit . $post;
exit;
}
}
echo $noreg;
}
}

View File

@@ -0,0 +1,38 @@
<?php
class Xno extends CI_Controller
{
function index() {
echo "API";
}
function show($noreg) {
$this->db_onedev = $this->load->database("onedev", true);
//000 00014 DA
$flag_convert = false;
$get_digit = $noreg;
if ( strlen($noreg) == 10 ) {
$get_digit = substr($noreg,3,5);
$pre = substr($noreg,0,3);
$post = substr($noreg,-2);
$flag_convert = true ;
}
if ( strlen($noreg) == 7 ) {
$get_digit = substr($noreg,0,5);
$post = substr($noreg,-2);
$pre = "";
$flag_convert = true ;
}
if (is_numeric($get_digit)) return $noreg;
$sql = "select numberMapOrigin from number_map where numberMapTarget = ?";
$qry = $this->db_onedev->query($sql, array($get_digit));
if ($qry) {
$rows = $qry->result_array();
if (count($rows) > 0 ) {
$new_digit = $rows[0]["numberMapOrigin"];
echo $pre . $new_digit . $post;
exit;
}
}
echo $noreg;
}
}