Files
BE_IBL/application/controllers/v1/su/Resultemailv5.php--131224
2026-04-15 15:23:57 +07:00

388 lines
24 KiB
Plaintext

<?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);
}
}
//Tambahan preparasi sperma
if (
$v["Group_ResultID"] == 20 ||
$v["Group_ResultID"] == "20"
) {
$rows[$k]["url_rpt"] =
"/birt/frameset?__report=report/one/lab/rpt_hasil_sperma_email.rptdesign&__format=pdf&username=" .
$v["staff_name"] .
"&PID=" .
$v["order_id"] .
"&ts=" .
strtotime("now");
}
}
$arr_grouping = [];
foreach ($rows as $ki => $vi) {
$idx = $this->getgroup_idx($arr_grouping, $vi["order_id"]);
if ($idx == -1) {
$xnew = $vi;
$xnew["details"] = [
[
"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, [
"type_result" => $vi["type_result"],
"url" => $vi["url_rpt"],
]);
$arr_grouping[$idx]["details"] = $e_old;
}
}
}
$data = [];
//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;
}
}
}