1042 lines
45 KiB
PHP
1042 lines
45 KiB
PHP
<?php
|
|
class Mcu_nl extends MY_Controller
|
|
{
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
function log($msg)
|
|
{
|
|
$date = date("Y-m-d H:i:s");
|
|
echo "$date $msg\n";
|
|
}
|
|
/*
|
|
create table request(
|
|
requestID int not null auto_increment primary key,
|
|
requestType varchar(20),
|
|
requestM_CompanyID int,
|
|
requestStartDate varchar(10),
|
|
requestEndDate varchar(10),
|
|
requestStatus varchar(1) default 'N',
|
|
requestCreated datetime default current_timestamp(),
|
|
requestLasUpdated datetime default current_timestamp()
|
|
on update current_timestamp(),
|
|
requestUserID int default 3,
|
|
key(requestType),
|
|
key(requestStatus)
|
|
);
|
|
*/
|
|
function update_request() {
|
|
$param = $this->sys_input;
|
|
$id = $param["requestID"];
|
|
$sql = "update one_rekap.request set requestStatus = 'Y' where requestID = ?";
|
|
$qry = $this->db->query($sql,[$id]);
|
|
if (!$qry) {
|
|
echo json_encode(["status"=>"ERR", "message" => $this->db->error()["message"]]);
|
|
exit;
|
|
}
|
|
echo json_encode(["status" => "OK", "message" => "Request ID $id updated"]);
|
|
}
|
|
function get_request() {
|
|
$sql = "select M_CompanyName, request.*
|
|
from one_rekap.request
|
|
join m_company on RequestM_CompanyID = M_CompanyID
|
|
and requestType = 'nl'
|
|
and requestStatus = 'N'
|
|
limit 0,10";
|
|
$resp = $this->get_rows($sql);
|
|
if ($resp["status"] == -1) {
|
|
echo json_encode(["status"=>"ERR", "message" => $resp["message"]]);
|
|
exit;
|
|
}
|
|
echo json_encode(["status" => "OK", "data" => $resp["data"]]);
|
|
}
|
|
function get_order($companyID, $startDate, $endDate = "")
|
|
{
|
|
if ($enDate == "") {
|
|
$endDate = date("Y-m-d");
|
|
}
|
|
|
|
$sql = "select T_OrderHeaderID, T_OrderHeaderLabNumber,M_MouID, M_MouNumber, M_MouStartDate, M_MouEndDate
|
|
from t_orderheader
|
|
join m_mou on T_OrderHeaderM_CompanyID = ?
|
|
and T_OrderHeaderIsActive = 'Y' and M_MouID = T_OrderHeaderM_MouID
|
|
and M_MouIsActive = 'Y'
|
|
and T_OrderHeaderDate >- ? and T_OrderHeaderDate <= ?
|
|
join t_orderheaderaddon on T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID
|
|
and T_OrderHeaderAddOnIsActive = 'Y'
|
|
and (
|
|
T_OrderHeaderAddOnPatientMCU = 'Y'
|
|
or
|
|
M_MouIsMcu = 'Y'
|
|
)
|
|
join mcu_resume on Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID
|
|
order by M_MouID,T_OrderHeaderID";
|
|
$resp = $this->get_rows($sql, [$companyID, $startDate, $endDate]);
|
|
if ($resp["status"] == -1) {
|
|
$this->log(
|
|
"Err Get Orders : $startDate - $endDate " . $resp["message"]
|
|
);
|
|
exit();
|
|
}
|
|
$result = [];
|
|
$group = [];
|
|
$counter = 0;
|
|
$total = 0;
|
|
foreach ($resp["data"] as $d) {
|
|
$group[] = $d;
|
|
if ($counter == 25) {
|
|
$result[] = $group;
|
|
$counter = 0;
|
|
$group = [];
|
|
$total += 25;
|
|
}
|
|
$counter++;
|
|
}
|
|
$total += $counter;
|
|
if ($counter > 0) {
|
|
$result[] = $group;
|
|
}
|
|
echo json_encode(["status" => "OK", "data" => $result, "total" => $total]);
|
|
}
|
|
|
|
function nl_01()
|
|
{
|
|
$param = $this->sys_input;
|
|
$ids = implode(",", $param["order"]);
|
|
if ($ids == "") {
|
|
$ids = "-1";
|
|
}
|
|
$sql = " select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
case when Nat_TestFlagMcu = 'C' then Nat_SubSubGroupName
|
|
when Mcu_ResumeDetailsCategory = 'konsul' then 'Konsultasi'
|
|
else T_TestName end as T_TestName ,
|
|
Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
Mcu_ResumeDetailsCategory,
|
|
Mcu_ResumeDetailsID,
|
|
M_No_FormRev,
|
|
S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
T_TestSasCode, DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
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_no_form on M_No_FormID > 0 and M_No_FormName = 'LAB'
|
|
left join conf_systems on S_SystemsID > 0
|
|
left join mcu_resumedetails on Mcu_ResumeDetailsMcu_ResumeID = Mcu_ResumeID
|
|
left join t_test on Mcu_ResumeDetailsT_TestID = T_TestID
|
|
left join nat_test oN T_TestNat_TestID = Nat_TestID aND Nat_TestIsActive = 'Y'
|
|
left join nat_subgroup on Nat_TestNat_SubGroupID = Nat_SubgroupID anD Nat_SubGroupIsActive = 'Y'
|
|
left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y'
|
|
left join t_orderdetail on Mcu_ResumeDetailsT_OrderDetailID = T_OrderDetailID
|
|
where
|
|
T_OrderDetailIsActive = 'Y'
|
|
union all
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Kesimpulan' as T_TestName ,
|
|
Mcu_ResumeKesimpulan as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'7777777777' as T_TestSasCode, DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
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_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
|
|
where
|
|
Mcu_ResumeKesimpulan <> ''
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Rekomendasi' as T_TestName ,
|
|
Mcu_ResumeRekomendasi as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'8888888888' as T_TestSasCode, DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB ,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
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_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
where
|
|
Mcu_ResumeKesimpulan <> ''
|
|
and Mcu_ResumeRekomendasi <> ''
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Saran' as T_TestName ,
|
|
Mcu_ResumeSaran as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'9999999999' as T_TestSasCode, DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
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_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
|
|
where
|
|
Mcu_ResumeSaran <> '' ";
|
|
$resp = $this->get_rows($sql);
|
|
if ($resp["status"] == -1) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => $this->db->error()["message"],
|
|
]);
|
|
} else {
|
|
$tot_update = 0;
|
|
$tot_insert = 0;
|
|
foreach($resp["data"] as $dt) {
|
|
$resp = $this->insert_or_update("one_rekap.rekap_nl_001", $dt, [
|
|
"M_MouID",
|
|
"T_OrderHeaderID",
|
|
]);
|
|
if($resp["status"] == "ERR") {
|
|
echo json_encode($resp);
|
|
exit;
|
|
} else {
|
|
if($resp["message"] == "Update") {
|
|
$tot_update++;
|
|
|
|
} else {
|
|
$tot_insert++;
|
|
}
|
|
}
|
|
}
|
|
echo json_encode(["status" => "OK" , "message" => "Insert : $tot_insert , Update : $tot_update"] );
|
|
}
|
|
}
|
|
function nl_02()
|
|
{
|
|
$param = $this->sys_input;
|
|
$ids = implode(",", $param["order"]);
|
|
if ($ids == "") {
|
|
$ids = "-1";
|
|
}
|
|
$sql = "select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
|
|
T_TestName ,
|
|
if(`fn_itf_isnumber`(T_OrderDetailResult) = '0',T_OrderDetailResult ,`fn_rpt_format_number`(T_OrderDetailResult) ) as Mcu_ResumeDetailsResult,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
M_No_FormRev,
|
|
S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
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_no_form on M_No_FormID > 0 and M_No_FormName = 'LAB'
|
|
left join conf_systems on S_SystemsID > 0
|
|
left join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID and T_OrderDetailIsActive = 'Y'
|
|
left join t_test on T_OrderDetailT_TestID = T_TestID
|
|
|
|
where
|
|
T_OrderDetailT_TestIsResult = 'y' and T_TestIsNonLab = ''
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
|
|
if(Mcu_ResumeDetailsCategory = 'konsul' , 'Konsultasi' , T_TestName) as T_TestName ,
|
|
Mcu_ResumeDetailsResult,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
Mcu_ResumeDetailsCategory,
|
|
Mcu_ResumeDetailsID,
|
|
M_No_FormRev,
|
|
S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
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_no_form on M_No_FormID > 0 and M_No_FormName = 'LAB'
|
|
left join conf_systems on S_SystemsID > 0
|
|
left join mcu_resumedetails on Mcu_ResumeDetailsMcu_ResumeID = Mcu_ResumeID
|
|
left join t_test on Mcu_ResumeDetailsT_TestID = T_TestID
|
|
where
|
|
Mcu_ResumeDetailsCategory <> 'lab'
|
|
|
|
union all
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Kesimpulan' as T_TestName ,
|
|
Mcu_ResumeKesimpulan as Mcu_ResumeDetailsResult,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'7777777777' as T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
where
|
|
Mcu_ResumeKesimpulan <> ''
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Rekomendasi' as T_TestName ,
|
|
Mcu_ResumeRekomendasi as Mcu_ResumeDetailsResult,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'8888888888' as T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
and Mcu_ResumeKesimpulan <> ''
|
|
and Mcu_ResumeRekomendasi <> ''
|
|
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Saran' as T_TestName ,
|
|
Mcu_ResumeSaran as Mcu_ResumeDetailsResult,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'9999999999' as T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
and Mcu_ResumeSaran <> ''
|
|
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
|
|
T_TestName ,
|
|
So_ResultEntryDetailResult as Mcu_ResumeDetailsResult,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
M_No_FormRev,
|
|
S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID and T_OrderDetailIsActive = 'Y'
|
|
and T_OrderDetailT_TestIsResult = 'y'
|
|
join t_test on T_OrderDetailT_TestID = T_TestID
|
|
and T_TestIsNonLab <> ''
|
|
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
|
|
join so_resultentry on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and So_ResultEntryT_OrderDetailID = T_OrderDetailID
|
|
join so_resultentrydetail on So_ResultEntryDetailSo_ResultEntryID = So_ResultEntryID
|
|
join so_templatedetail on So_ResultEntryDetailSo_TemplateDetailID = So_TemplateDetailID
|
|
and (So_TemplateDetailName = 'kesan' or So_TemplateDetailName = 'Interpretasi')
|
|
LEFT JOIN m_no_form on M_No_FormID > 0 and M_No_FormName = 'LAB'
|
|
left join conf_systems on S_SystemsID > 0
|
|
";
|
|
$resp = $this->get_rows($sql);
|
|
if ($resp["status"] == -1) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => $this->db->error()["message"],
|
|
]);
|
|
} else {
|
|
$tot_update = 0;
|
|
$tot_insert = 0;
|
|
foreach($resp["data"] as $dt) {
|
|
$resp = $this->insert_or_update("one_rekap.rekap_nl_002", $dt, [
|
|
"M_MouID",
|
|
"T_OrderHeaderID",
|
|
]);
|
|
if($resp["status"] == "ERR") {
|
|
echo json_encode($resp);
|
|
exit;
|
|
} else {
|
|
if($resp["message"] == "Update") {
|
|
$tot_update++;
|
|
|
|
} else {
|
|
$tot_insert++;
|
|
}
|
|
}
|
|
}
|
|
echo json_encode(["status" => "OK" , "message" => "Insert : $tot_insert , Update : $tot_update"] );
|
|
}
|
|
}
|
|
|
|
function nl_03()
|
|
{
|
|
$param = $this->sys_input;
|
|
$ids = implode(",", $param["order"]);
|
|
if ($ids == "") {
|
|
$ids = "-1";
|
|
}
|
|
$sql = "select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
|
|
T_TestName ,
|
|
if(`fn_itf_isnumber`(T_OrderDetailResult) = '0',T_OrderDetailResult ,`fn_rpt_format_number`(T_OrderDetailResult) ) as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
M_No_FormRev,
|
|
S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
and (T_OrderHeaderAddOnPatientMcu = 'Y' or M_MouIsMcu = 'Y')
|
|
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID and T_OrderDetailIsActive = 'Y'
|
|
join t_test on T_OrderDetailT_TestID = T_TestID
|
|
and T_OrderDetailT_TestIsResult = 'y' and T_TestIsNonLab = ''
|
|
left join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
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_no_form on M_No_FormID > 0 and M_No_FormName = 'LAB'
|
|
left join conf_systems on S_SystemsID > 0
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
|
|
if(Mcu_ResumeDetailsCategory = 'konsul' , 'Konsultasi' , T_TestName) as T_TestName ,
|
|
Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
Mcu_ResumeDetailsCategory,
|
|
Mcu_ResumeDetailsID,
|
|
M_No_FormRev,
|
|
S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
and (T_OrderHeaderAddOnPatientMcu = 'Y' or M_MouIsMcu = 'Y')
|
|
join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
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_no_form on M_No_FormID > 0 and M_No_FormName = 'LAB'
|
|
left join conf_systems on S_SystemsID > 0
|
|
left join mcu_resumedetails on Mcu_ResumeDetailsMcu_ResumeID = Mcu_ResumeID
|
|
left join t_test on Mcu_ResumeDetailsT_TestID = T_TestID
|
|
|
|
where
|
|
Mcu_ResumeDetailsCategory <> 'lab'
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Kesimpulan' as T_TestName ,
|
|
Mcu_ResumeKesimpulan as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'7777777777' as T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
and (T_OrderHeaderAddOnPatientMcu = 'Y' or M_MouIsMcu = 'Y')
|
|
join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
|
|
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
where
|
|
Mcu_ResumeKesimpulan <> ''
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Rekomendasi' as T_TestName ,
|
|
Mcu_ResumeRekomendasi as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'8888888888' as T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
and (T_OrderHeaderAddOnPatientMcu = 'Y' or M_MouIsMcu = 'Y')
|
|
join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
where
|
|
Mcu_ResumeKesimpulan <> ''
|
|
and Mcu_ResumeRekomendasi <> ''
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
'Saran' as T_TestName ,
|
|
Mcu_ResumeSaran as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
'' as M_No_FormRev,
|
|
'' as S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
'9999999999' as T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
and (T_OrderHeaderAddOnPatientMcu = 'Y' or M_MouIsMcu = 'Y')
|
|
join mcu_resume on T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
left join m_company ON T_OrderHeaderM_CompanyID = M_CompanyID AND M_CompanyIsActive = 'Y'
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
|
|
|
|
where
|
|
Mcu_ResumeSaran <> ''
|
|
|
|
|
|
union all
|
|
|
|
select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate orgT_OrderHeaderDate,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS T_OrderHeaderDate,T_OrderHeaderLabNumber,M_PatientLocation,
|
|
fn_lookup_external(T_OrderHeaderLabNumber,'L') as NOLAB ,
|
|
fn_get_name( T_OrderHeaderM_PatientID ) AS NAMA ,
|
|
SUBSTRING(T_OrderHeaderM_PatientAge , 1, 2) AS USIA,
|
|
M_SexCode as JENISKELAMIN ,
|
|
|
|
T_TestName ,
|
|
So_ResultEntryDetailResult as Mcu_ResumeDetailsResult,
|
|
M_CompanyNumber,
|
|
M_CompanyName,
|
|
M_MouName,
|
|
'' as Mcu_ResumeDetailsCategory,
|
|
'' as Mcu_ResumeDetailsID,
|
|
M_No_FormRev,
|
|
S_SystemsCompanyCity ,
|
|
DATE_FORMAT(now(), '%d-%m-%Y %T') AS DATENOW ,
|
|
M_CompanyID,
|
|
M_MouID,
|
|
T_TestSasCode , DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') AS M_PatientDOB,
|
|
M_PatientNIK ,
|
|
M_PatientJabatan ,
|
|
M_PatientKedudukan ,
|
|
M_PatientPJ ,
|
|
M_PatientJob,
|
|
M_PatientIDNumber
|
|
|
|
from t_orderheader
|
|
join t_orderheaderaddon on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderID in ($ids)
|
|
join m_mou ON T_OrderHeaderM_MouID = M_MouID AND M_MouIsActive = 'Y'
|
|
and (T_OrderHeaderAddOnPatientMcu = 'Y' or M_MouIsMcu = 'Y')
|
|
join t_orderdetail on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID and T_OrderDetailIsActive = 'Y'
|
|
and T_OrderDetailT_TestIsResult = 'y'
|
|
join t_test on T_OrderDetailT_TestID = T_TestID
|
|
and T_TestIsNonLab <> ''
|
|
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
|
left join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
|
|
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_no_form on M_No_FormID > 0 and M_No_FormName = 'LAB'
|
|
left join conf_systems on S_SystemsID > 0
|
|
left join so_resultentry on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and So_ResultEntryT_OrderDetailID = T_OrderDetailID
|
|
left join so_resultentrydetail on So_ResultEntryDetailSo_ResultEntryID = So_ResultEntryID
|
|
left join so_templatedetail on So_ResultEntryDetailSo_TemplateDetailID = So_TemplateDetailID
|
|
|
|
where
|
|
(So_TemplateDetailName = 'kesan' or So_TemplateDetailName = 'Interpretasi')
|
|
";
|
|
$resp = $this->get_rows($sql);
|
|
if ($resp["status"] == -1) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => $this->db->error()["message"],
|
|
]);
|
|
} else {
|
|
$tot_update = 0;
|
|
$tot_insert = 0;
|
|
foreach($resp["data"] as $dt) {
|
|
$resp = $this->insert_or_update("one_rekap.rekap_nl_003", $dt, [
|
|
"M_MouID",
|
|
"T_OrderHeaderID",
|
|
]);
|
|
if($resp["status"] == "ERR") {
|
|
echo json_encode($resp);
|
|
exit;
|
|
} else {
|
|
if($resp["message"] == "Update") {
|
|
$tot_update++;
|
|
|
|
} else {
|
|
$tot_insert++;
|
|
}
|
|
}
|
|
}
|
|
echo json_encode(["status" => "OK" , "message" => "Insert : $tot_insert , Update : $tot_update"] );
|
|
}
|
|
}
|
|
|
|
function get_sp($sql, $param = false)
|
|
{
|
|
$resp = $this->get_rows($sql, $param);
|
|
$this->clean_mysqli_connection($this->db->conn_id);
|
|
return $resp;
|
|
}
|
|
//helpers
|
|
|
|
function get_rows($sql, $param = false)
|
|
{
|
|
if ($param) {
|
|
$qry = $this->db->query($sql, $param);
|
|
} else {
|
|
$qry = $this->db->query($sql);
|
|
}
|
|
if (!$qry) {
|
|
return [
|
|
"status" => -1,
|
|
"message" =>
|
|
$this->db->last_query() .
|
|
"|" .
|
|
$this->db->error()["message"],
|
|
];
|
|
}
|
|
return ["status" => 0, "data" => $qry->result_array()];
|
|
}
|
|
function get_row($sql, $param = false)
|
|
{
|
|
$resp = $this->get_rows($sql, $param);
|
|
if ($resp["status"] == -1) {
|
|
return $resp;
|
|
}
|
|
if (count($resp["data"]) == 0) {
|
|
return ["status" => 0, "message" => "Not found."];
|
|
}
|
|
return ["status" => 1, "data" => $resp["data"][0]];
|
|
}
|
|
|
|
function insert_or_update($table, $dt, $keys)
|
|
{
|
|
$s_where = "";
|
|
$param = [];
|
|
foreach ($keys as $k) {
|
|
if ($s_where != "") {
|
|
$s_where .= " and ";
|
|
}
|
|
$s_where .= " $k = ?";
|
|
$param[] = $dt[$k];
|
|
}
|
|
$sql = "select count(*) as total
|
|
from $table
|
|
where $s_where ";
|
|
$qry = $this->db->query($sql, $param);
|
|
if (!$qry) {
|
|
return [
|
|
"status" => "ERR",
|
|
"message" =>
|
|
$this->db->error()["message"] .
|
|
"|" .
|
|
$this->db->last_query(),
|
|
];
|
|
}
|
|
$rows = $qry->result_array();
|
|
$status = "Insert";
|
|
if (count($rows) > 0) {
|
|
if ($rows[0]["total"] > 0) {
|
|
foreach ($keys as $k) {
|
|
$this->db->where($k, $dt[$k]);
|
|
}
|
|
$qry = $this->db->update($table, $dt);
|
|
if (!$qry) {
|
|
return [
|
|
"status" => "ERR",
|
|
"message" =>
|
|
"ERR Update : " .
|
|
$this->db->error()["message"] .
|
|
"|" .
|
|
$this->db->last_query(),
|
|
];
|
|
}
|
|
$status = "Update";
|
|
} else {
|
|
//insert
|
|
$qry = $this->db->insert($table, $dt);
|
|
if (!$qry) {
|
|
return [
|
|
"status" => "ERR",
|
|
"message" =>
|
|
"ERR Insert : " .
|
|
$this->db->error()["message"] .
|
|
"|" .
|
|
$this->db->last_query(),
|
|
];
|
|
}
|
|
}
|
|
} else {
|
|
//insert
|
|
$qry = $this->db->insert($table, $dt);
|
|
if (!$qry) {
|
|
return [
|
|
"status" => "ERR",
|
|
"message" =>
|
|
"ERR Insert : " .
|
|
$this->db->error()["message"] .
|
|
"|" .
|
|
$this->db->last_query(),
|
|
];
|
|
}
|
|
}
|
|
return ["status" => "OK", "message" => $status];
|
|
}
|
|
}
|
|
?>
|