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]; } } ?>