838 lines
41 KiB
PHP
838 lines
41 KiB
PHP
<?php
|
|
class Tatmcu extends MY_Controller
|
|
{
|
|
var $db;
|
|
public function index()
|
|
{
|
|
echo "TAT API";
|
|
}
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
// $this->db = $this->load->database("regional", true);
|
|
}
|
|
|
|
function insert_data($orderheaderid)
|
|
{
|
|
|
|
$this->db->trans_begin();
|
|
$prm = $this->sys_input;
|
|
// $orderheaderid = $prm['orderheaderid'];
|
|
|
|
// LAB result
|
|
$sql_lab_result = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_OrderSampleSamplingDate,' ',T_OrderSampleSamplingTime) as checkIn,
|
|
T_OrderSampleSamplingUserID as checkInUserID,
|
|
CONCAT(T_OrderSampleReceiveDate,' ',T_OrderSampleReceiveTime) as checkOut,
|
|
T_OrderSampleReceiveUserID as checkOutUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
'' as authorisasiDate,
|
|
'' as authorisasiUserID,
|
|
MIN(api_ResultDate) as resultDate,
|
|
'' as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID,
|
|
'result' as action
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = '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 corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN api_result ON api_ResultT_OrderDetailID = T_OrderDetailID AND api_ResultIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_ordersample ON T_OrderSampleT_SampleTypeID = T_SampleTypeID AND T_OrderSampleT_OrderHeaderID = T_OrderHeaderID AND T_OrderSampleIsActive = 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
GROUP BY T_BahanID";
|
|
$qry_lab_result = $this->db->query($sql_lab_result, [$orderheaderid]);
|
|
if ($qry_lab_result) {
|
|
$rows_lab_result = $qry_lab_result->result_array();
|
|
} else {
|
|
$this->sys_error_db("select lab error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
// LAB validation
|
|
$sql_lab_validation = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_OrderSampleSamplingDate,' ',T_OrderSampleSamplingTime) as checkIn,
|
|
T_OrderSampleSamplingUserID as checkInUserID,
|
|
CONCAT(T_OrderSampleReceiveDate,' ',T_OrderSampleReceiveTime) as checkOut,
|
|
T_OrderSampleReceiveUserID as checkOutUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
MAX(api_ResultAuthorizationDate) as authorisasiDate,
|
|
'' as authorisasiUserID,
|
|
'' as resultDate,
|
|
'' as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID,
|
|
'validation' as action
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = '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 corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN api_result ON api_ResultT_OrderDetailID = T_OrderDetailID AND api_ResultIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_ordersample ON T_OrderSampleT_SampleTypeID = T_SampleTypeID AND T_OrderSampleT_OrderHeaderID = T_OrderHeaderID AND T_OrderSampleIsActive = 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
GROUP BY T_BahanID";
|
|
$qry_lab_validation = $this->db->query($sql_lab_validation, [$orderheaderid]);
|
|
if ($qry_lab_validation) {
|
|
$rows_lab_validation = $qry_lab_validation->result_array();
|
|
} else {
|
|
$this->sys_error_db("select lab error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
// result
|
|
// NONLAB minmal
|
|
$sql_nonlab_resault = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_SamplingSoProcessDate,' ',T_SamplingSoProcessTime) as checkIn,
|
|
T_SamplingSoProcessUserID as checkInUserID,
|
|
CONCAT(T_SamplingSoDoneDate,' ',T_SamplingSoDoneTime) as checkOut,
|
|
T_SamplingSoDoneUserID as checkOutUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
'' as authorisasiDate,
|
|
'' as authorisasiUserID,
|
|
MIN(So_REActionLogDate) as resultDate,
|
|
So_REActionLogUserID as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID,
|
|
'result' as action
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = 'Y'
|
|
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
|
JOIN so_reactionlog ON So_REActionLogSo_ResultEntryID = So_ResultEntryID AND So_ResultEntryIsActive = 'Y'
|
|
AND So_REActionLogAction = 'UPDATE_ACT'
|
|
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 = 'Y'
|
|
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_samplingso ON T_SamplingSoT_TestID = T_TestID AND T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoIsActive= 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
GROUP BY T_TestID
|
|
";
|
|
$qry_nonlab_result = $this->db->query($sql_nonlab_resault, [$orderheaderid]);
|
|
if ($qry_nonlab_result) {
|
|
$rows_nonlab_result = $qry_nonlab_result->result_array();
|
|
} else {
|
|
$this->sys_error_db("select nonlab error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
// validation
|
|
// NONLAB max
|
|
$sql_nonlab_validation = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_SamplingSoProcessDate,' ',T_SamplingSoProcessTime) as checkIn,
|
|
T_SamplingSoProcessUserID as checkInUserID,
|
|
CONCAT(T_SamplingSoDoneDate,' ',T_SamplingSoDoneTime) as checkOut,
|
|
T_SamplingSoDoneUserID as checkOutUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
MAX(So_REActionLogDate) as authorisasiDate,
|
|
So_REActionLogUserID as authorisasiUserID,
|
|
'' as resultDate,
|
|
'' as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID,
|
|
'validation' as action
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = 'Y'
|
|
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
|
JOIN so_reactionlog ON So_REActionLogSo_ResultEntryID = So_ResultEntryID AND So_ResultEntryIsActive = 'Y'
|
|
AND So_REActionLogAction = 'VALIDATION'
|
|
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 = 'Y'
|
|
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_samplingso ON T_SamplingSoT_TestID = T_TestID AND T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoIsActive= 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
GROUP BY T_TestID";
|
|
$qry_nonlab_validation = $this->db->query($sql_nonlab_validation, [$orderheaderid]);
|
|
if ($qry_nonlab_validation) {
|
|
$rows_nonlab_validation = $qry_nonlab_validation->result_array();
|
|
} else {
|
|
$this->sys_error_db("select nonlab max error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
// echo $this->db->last_query();
|
|
// exit;
|
|
|
|
// result
|
|
// VISUS
|
|
$sql_visus_result = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_SamplingSoProcessDate,' ',T_SamplingSoProcessTime) as checkIn,
|
|
T_SamplingSoProcessUserID,
|
|
CONCAT(T_SamplingSoDoneDate,' ',T_SamplingSoDoneTime) as checkOut,
|
|
T_SamplingSoDoneUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
'' as authorisasiDate,
|
|
'' as authorisasiUserID,
|
|
'' as resultDate,
|
|
'' as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID,
|
|
'result' as action
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = 'Y'
|
|
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_samplingso ON T_SamplingSoT_TestID = T_TestID AND T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoIsActive= 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y' AND T_TestID IN (2571, 2573, 3450)
|
|
GROUP BY T_TestID";
|
|
$qry_visus_result = $this->db->query($sql_visus_result, [$orderheaderid]);
|
|
if ($qry_visus_result) {
|
|
$rows_visus_result = $qry_visus_result->result_array();
|
|
} else {
|
|
$this->sys_error_db("select visus error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
if ($rows_visus_result) {
|
|
$sql_v = "SELECT T_SamplingAdditionalFisikVisusID,
|
|
MIN(T_SamplingAdditionalFisikVisusCreated) as T_SamplingAdditionalFisikVisusCreated,
|
|
T_SamplingAdditionalFisikVisusCreatedUserID
|
|
FROM t_samplingso_additional_fisik_visus
|
|
WHERE T_SamplingAdditionalFisikVisusT_OrderHeaderID = ?
|
|
LIMIT 1";
|
|
$qry_v = $this->db->query($sql_v, ($orderheaderid));
|
|
if ($qry_v) {
|
|
$row_v = $qry_v->row_array();
|
|
} else {
|
|
$this->sys_error_db('select t_samplingso_additional_fisik_visus', $this->db);
|
|
exit;
|
|
}
|
|
|
|
$sql_bw = "SELECT T_SamplingAdditionalFisikBWID,
|
|
MIN(T_SamplingAdditionalFisikBWCreated) as T_SamplingAdditionalFisikBWCreated,
|
|
T_SamplingAdditionalFisikBWCreatedUserID
|
|
FROM t_samplingso_additional_fisik_bw
|
|
WHERE T_SamplingAdditionalFisikBWT_OrderHeaderID = ?
|
|
LIMIT 1";
|
|
$qry_bw = $this->db->query($sql_bw, ($orderheaderid));
|
|
if ($qry_bw) {
|
|
$row_bw = $qry_bw->row_array();
|
|
} else {
|
|
$this->sys_error_db('select t_samplingso_additional_fisik_bw', $this->db);
|
|
exit;
|
|
}
|
|
|
|
$sql_bbtb = "SELECT T_SamplingAdditionalFisikBBTBID,
|
|
MIN(T_SamplingAdditionalFisikBBTBCreated) as T_SamplingAdditionalFisikBBTBCreated,
|
|
T_SamplingAdditionalFisikBBTBCreatedUserID
|
|
FROM t_samplingso_additional_fisik_bbtb
|
|
WHERE T_SamplingAdditionalFisikBBTBT_OrderHeaderID = ?
|
|
LIMIT 1";
|
|
$qry_bbtb = $this->db->query($sql_bbtb, ($orderheaderid));
|
|
if ($qry_bbtb) {
|
|
$row_bbtb = $qry_bbtb->row_array();
|
|
} else {
|
|
$this->sys_error_db('select t_samplingso_additional_fisik_bbtb', $this->db);
|
|
exit;
|
|
}
|
|
|
|
// print_r($row_v);
|
|
// exit;
|
|
foreach ($rows_visus_result as $key => $value) {
|
|
// print_r($value);
|
|
if ($value['T_TestID'] == 2571) {
|
|
$rows_visus_result[$key]['resultDate'] = $row_v['T_SamplingAdditionalFisikVisusCreated'];
|
|
$rows_visus_result[$key]['resultUserID'] = $row_v['T_SamplingAdditionalFisikVisusCreatedUserID'];
|
|
}
|
|
|
|
if ($value['T_TestID'] == 2573) {
|
|
$rows_visus_result[$key]['resultDate'] = $row_bw['T_SamplingAdditionalFisikBWCreated'];
|
|
$rows_visus_result[$key]['resultUserID'] = $row_bw['T_SamplingAdditionalFisikBWCreatedUserID'];
|
|
}
|
|
|
|
if ($value['T_TestID'] == 3450) {
|
|
$rows_visus_result[$key]['resultDate'] = $row_bbtb['T_SamplingAdditionalFisikBBTBCreated'];
|
|
$rows_visus_result[$key]['resultUserID'] = $row_bbtb['T_SamplingAdditionalFisikBBTBCreatedUserID'];
|
|
}
|
|
}
|
|
}
|
|
|
|
// print_r($rows_visus_result);
|
|
// exit;
|
|
|
|
// validation
|
|
// VISUS
|
|
$sql_visus_validation = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_SamplingSoProcessDate,' ',T_SamplingSoProcessTime) as checkIn,
|
|
T_SamplingSoProcessUserID,
|
|
CONCAT(T_SamplingSoDoneDate,' ',T_SamplingSoDoneTime) as checkOut,
|
|
T_SamplingSoDoneUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
'' as authorisasiDate,
|
|
'' as authorisasiUserID,
|
|
'' as resultDate,
|
|
'' as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID,
|
|
'validation' as action
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = 'Y'
|
|
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_samplingso ON T_SamplingSoT_TestID = T_TestID AND T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoIsActive= 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y' AND T_TestID IN (2571, 2573, 3450)
|
|
GROUP BY T_TestID";
|
|
$qry_visus_validation = $this->db->query($sql_visus_validation, [$orderheaderid]);
|
|
if ($qry_visus_validation) {
|
|
$rows_visus_validation = $qry_visus_validation->result_array();
|
|
} else {
|
|
$this->sys_error_db("select visus error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
if ($rows_visus_validation) {
|
|
$sql_v = "SELECT T_SamplingAdditionalFisikVisusID,
|
|
MAX(T_SamplingAdditionalFisikVisusCreated) as T_SamplingAdditionalFisikVisusCreated,
|
|
T_SamplingAdditionalFisikVisusCreatedUserID
|
|
FROM t_samplingso_additional_fisik_visus
|
|
WHERE T_SamplingAdditionalFisikVisusT_OrderHeaderID = ?
|
|
LIMIT 1";
|
|
$qry_v = $this->db->query($sql_v, ($orderheaderid));
|
|
if ($qry_v) {
|
|
$row_v = $qry_v->row_array();
|
|
} else {
|
|
$this->sys_error_db('select t_samplingso_additional_fisik_visus', $this->db);
|
|
exit;
|
|
}
|
|
|
|
$sql_bw = "SELECT T_SamplingAdditionalFisikBWID,
|
|
MAX(T_SamplingAdditionalFisikBWCreated) as T_SamplingAdditionalFisikBWCreated,
|
|
T_SamplingAdditionalFisikBWCreatedUserID
|
|
FROM t_samplingso_additional_fisik_bw
|
|
WHERE T_SamplingAdditionalFisikBWT_OrderHeaderID = ?
|
|
LIMIT 1";
|
|
$qry_bw = $this->db->query($sql_bw, ($orderheaderid));
|
|
if ($qry_bw) {
|
|
$row_bw = $qry_bw->row_array();
|
|
} else {
|
|
$this->sys_error_db('select t_samplingso_additional_fisik_bw', $this->db);
|
|
exit;
|
|
}
|
|
|
|
$sql_bbtb = "SELECT T_SamplingAdditionalFisikBBTBID,
|
|
MAX(T_SamplingAdditionalFisikBBTBCreated) as T_SamplingAdditionalFisikBBTBCreated,
|
|
T_SamplingAdditionalFisikBBTBCreatedUserID
|
|
FROM t_samplingso_additional_fisik_bbtb
|
|
WHERE T_SamplingAdditionalFisikBBTBT_OrderHeaderID = ?
|
|
LIMIT 1";
|
|
$qry_bbtb = $this->db->query($sql_bbtb, ($orderheaderid));
|
|
if ($qry_bbtb) {
|
|
$row_bbtb = $qry_bbtb->row_array();
|
|
} else {
|
|
$this->sys_error_db('select t_samplingso_additional_fisik_bbtb', $this->db);
|
|
exit;
|
|
}
|
|
|
|
// print_r($row_v);
|
|
foreach ($rows_visus_validation as $key => $value) {
|
|
// print_r($value);
|
|
if ($value['T_TestID'] == 2571) {
|
|
$rows_visus_validation[$key]['authorisasiDate'] = $row_v['T_SamplingAdditionalFisikVisusCreated'];
|
|
$rows_visus_validation[$key]['authorisasiUserID'] = $row_v['T_SamplingAdditionalFisikVisusCreatedUserID'];
|
|
}
|
|
|
|
if ($value['T_TestID'] == 2573) {
|
|
$rows_visus_validation[$key]['authorisasiDate'] = $row_bw['T_SamplingAdditionalFisikBWCreated'];
|
|
$rows_visus_validation[$key]['authorisasiUserID'] = $row_bw['T_SamplingAdditionalFisikBWCreatedUserID'];
|
|
}
|
|
|
|
if ($value['T_TestID'] == 3450) {
|
|
$rows_visus_validation[$key]['authorisasiDate'] = $row_bbtb['T_SamplingAdditionalFisikBBTBCreated'];
|
|
$rows_visus_validation[$key]['authorisasiUserID'] = $row_bbtb['T_SamplingAdditionalFisikBBTBCreatedUserID'];
|
|
}
|
|
}
|
|
}
|
|
|
|
// result
|
|
// lapang pandang, body fit, tonometri
|
|
$sql_lp_result = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_SamplingSoProcessDate,' ', T_SamplingSoProcessTime) as checkIn,
|
|
T_SamplingSoProcessUserID,
|
|
CONCAT(T_SamplingSoDoneDate,' ', T_SamplingSoDoneTime) as checkOut,
|
|
T_SamplingSoDoneUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
'' as authorisasiDate,
|
|
'' as authorisasiUserID,
|
|
MIN(So_REActionLogDate) as resultDate,
|
|
So_REActionLogUserID as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID,
|
|
'result' as action
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = 'Y'
|
|
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y' AND So_ResultEntryNonlab_TemplateID = 27
|
|
LEFT JOIN so_reactionlog ON So_REActionLogSo_ResultEntryID = So_ResultEntryID AND So_ResultEntryIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_samplingso ON T_SamplingSoT_TestID = T_TestID AND T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoIsActive= 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y' AND T_TestID IN (2614, 3466, 2580)
|
|
GROUP BY T_TestID";
|
|
$qry_lp_result = $this->db->query($sql_lp_result, [$orderheaderid]);
|
|
if ($qry_lp_result) {
|
|
$rows_lp_result = $qry_lp_result->result_array();
|
|
} else {
|
|
$this->sys_error_db("select lapangpandang, body fit, tonometri", $this->db);
|
|
exit;
|
|
}
|
|
|
|
// validation
|
|
// lapang pandang, body fit, tonometri
|
|
$sql_lp_validation = "SELECT
|
|
CorporateID,
|
|
CorporateName,
|
|
Mgm_McuID,
|
|
Mgm_McuLabel,
|
|
CONCAT(T_SamplingSoProcessDate,' ', T_SamplingSoProcessTime) as checkIn,
|
|
T_SamplingSoProcessUserID,
|
|
CONCAT(T_SamplingSoDoneDate,' ', T_SamplingSoDoneTime) as checkOut,
|
|
T_SamplingSoDoneUserID,
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
M_PatientID,
|
|
M_PatientNoReg,
|
|
M_PatientName,
|
|
T_TestID,
|
|
T_TestCode,
|
|
GROUP_CONCAT(IFNULL(CONCAT(T_TestName), '')) AS T_TestName,
|
|
T_SampleTypeName,
|
|
T_BahanID,
|
|
T_BahanCode,
|
|
T_BahanName,
|
|
MAX(So_REActionLogDate) as authorisasiDate,
|
|
So_REActionLogUserID as authorisasiUserID,
|
|
'' as resultDate,
|
|
'' as resultUserID,
|
|
Mcu_ResumeValidationDateTime,
|
|
Mcu_ResumeValidationUserID
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = '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_TestIsActive = 'Y'
|
|
JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID AND T_SampleTypeIsActive = 'Y'
|
|
JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID AND T_BahanIsActive = 'Y'
|
|
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID AND CorporateIsActive = 'Y'
|
|
JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
|
|
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y' AND So_ResultEntryNonlab_TemplateID = 27
|
|
LEFT JOIN so_reactionlog ON So_REActionLogSo_ResultEntryID = So_ResultEntryID AND So_ResultEntryIsActive = 'Y'
|
|
LEFT JOIN mcu_resume ON Mcu_ResumeT_OrderHeaderID = T_OrderHeaderID AND Mcu_ResumeIsActive = 'Y'
|
|
LEFT JOIN t_samplingso ON T_SamplingSoT_TestID = T_TestID AND T_SamplingSoT_OrderHeaderID = T_OrderHeaderID AND T_SamplingSoIsActive= 'Y'
|
|
WHERE T_OrderHeaderID = ?
|
|
AND T_OrderHeaderIsActive = 'Y' AND T_TestID IN (2614, 3466, 2580)
|
|
GROUP BY T_TestID";
|
|
$qry_lp_validation = $this->db->query($sql_lp_validation, [$orderheaderid]);
|
|
if ($qry_lp_validation) {
|
|
$rows_lp_validation = $qry_lp_validation->result_array();
|
|
} else {
|
|
$this->sys_error_db("select lapangpandang, body fit, tonometri", $this->db);
|
|
exit;
|
|
}
|
|
|
|
$mergeDataArray = array_merge(
|
|
$rows_lab_result,
|
|
$rows_lab_validation,
|
|
$rows_nonlab_result,
|
|
$rows_nonlab_validation,
|
|
$rows_visus_result,
|
|
$rows_visus_validation,
|
|
$rows_lp_result,
|
|
$rows_lp_validation
|
|
);
|
|
// $mergeDataArray = array_merge($rows_nonlab, $rows_nonlab_max);
|
|
|
|
// print_r($mergeDataArray);
|
|
// exit;
|
|
// print_r(count($mergeDataArray));
|
|
if (count($mergeDataArray) > 0) {
|
|
$sql_delete = "DELETE FROM tat_mcu WHERE
|
|
Tat_McuT_OrderHeaderID = {$orderheaderid}";
|
|
$qry_delete = $this->db->query($sql_delete);
|
|
if (!$qry_delete) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error_db("delete tat mcu error", $this->db);
|
|
exit;
|
|
}
|
|
foreach ($mergeDataArray as $k => $v) {
|
|
|
|
// print_r($v['action']);
|
|
// exit;
|
|
if ($v['action'] == 'result') {
|
|
$sql_insert = "INSERT INTO tat_mcu(
|
|
Tat_McuCorporateID,
|
|
Tat_McuCorporateName,
|
|
Tat_McuMgm_McuID,
|
|
Tat_McuMgm_McuLabel,
|
|
Tat_McuT_OrderHeaderID,
|
|
Tat_McuT_OrderHeaderDate,
|
|
Tat_McuT_OrderHeaderLabNumber,
|
|
Tat_McuM_PatientID,
|
|
Tat_McuM_PatientName,
|
|
Tat_McuT_BahanID,
|
|
Tat_McuT_BahanName,
|
|
Tat_McuCheckInDate,
|
|
Tat_McuCheckInUserID,
|
|
Tat_McuCheckOutDate,
|
|
Tat_McuCheckOutUserID,
|
|
Tat_McuResultDate,
|
|
Tat_McuResultUserID,
|
|
Tat_McuAuthorisasiDate,
|
|
Tat_McuAuthorisasiUserID,
|
|
Tat_McuKesimpulandanSaranDate,
|
|
Tat_McuKesimpulandanSaranUserID,
|
|
Tat_McuAuthorisasiDoctorDate,
|
|
Tat_McuAuthorisasiDoctorUserID,
|
|
Tat_McuCreated
|
|
) VALUES(
|
|
'{$v['CorporateID']}',
|
|
'{$v['CorporateName']}',
|
|
'{$v['Mgm_McuID']}',
|
|
'{$v['Mgm_McuLabel']}',
|
|
'{$v['T_OrderHeaderID']}',
|
|
'{$v['T_OrderHeaderDate']}',
|
|
'{$v['T_OrderHeaderLabNumber']}',
|
|
'{$v['M_PatientID']}',
|
|
'{$v['M_PatientName']}',
|
|
'{$v['T_BahanID']}',
|
|
'{$v['T_BahanName']}',
|
|
'{$v['checkIn']}',
|
|
'{$v['checkInUserID']}',
|
|
'{$v['checkOut']}',
|
|
'{$v['checkOutUserID']}',
|
|
'{$v['resultDate']}',
|
|
'{$v['resultUserID']}',
|
|
'{$v['authorisasiDate']}',
|
|
'{$v['authorisasiUserID']}',
|
|
'{$v['Mcu_ResumeValidationDateTime']}',
|
|
'{$v['Mcu_ResumeValidationUserID']}',
|
|
'{$v['Mcu_ResumeValidationDateTime']}',
|
|
'{$v['Mcu_ResumeValidationUserID']}',
|
|
NOW()
|
|
)";
|
|
$qry_insert = $this->db->query($sql_insert);
|
|
// echo $this->db->last_query();
|
|
// exit;
|
|
if (!$qry_insert) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error_db("insert tat mcu error", $this->db);
|
|
exit;
|
|
}
|
|
} else {
|
|
$sql_insert = "UPDATE tat_mcu SET
|
|
Tat_McuAuthorisasiDate = '{$v['authorisasiDate']}',
|
|
Tat_McuAuthorisasiUserID = '{$v['authorisasiUserID']}',
|
|
Tat_McuLastUpdated = NOW()
|
|
WHERE Tat_McuT_OrderHeaderID = '{$v['T_OrderHeaderID']}' AND Tat_McuT_BahanID = '{$v['T_BahanID']}'";
|
|
$qry_insert = $this->db->query($sql_insert);
|
|
// echo $this->db->last_query();
|
|
// exit;
|
|
if (!$qry_insert) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error_db("update tat mcu error", $this->db);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
$this->db->trans_commit();
|
|
echo json_encode(
|
|
array(
|
|
'status' => 'OK',
|
|
'message' => 'Berhasil Insert Data'
|
|
)
|
|
);
|
|
} else {
|
|
echo json_encode(
|
|
array(
|
|
'status' => 'OK',
|
|
'message' => 'Data Tidak Ada',
|
|
'data' => $mergeDataArray
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
function insert_tat_mcu(
|
|
$corporateID,
|
|
$corporateName,
|
|
$mgmmcuID,
|
|
$mgmmcuLabel,
|
|
$orderheaderID,
|
|
$orderheaderDate,
|
|
$patientID,
|
|
$patientName,
|
|
$bahanID,
|
|
$bahanName,
|
|
$checkIn,
|
|
$checkInUserID,
|
|
$checkOut,
|
|
$checkOutUserID,
|
|
$resultDate,
|
|
$resultUserID,
|
|
$authorisasiDate,
|
|
$authorisasiUserID,
|
|
$resumeValidationKSDate,
|
|
$resumeValidationKSUserID,
|
|
$resumeValidationDoctorDate,
|
|
$resumeValidationDoctorUserID
|
|
) {
|
|
$this->db->trans_begin();
|
|
|
|
// $sql_cek = "SELECT Tat_McuID,
|
|
// Tat_McuCorporateID,
|
|
// Tat_McuT_OrderHeaderID
|
|
// FROM tat_mcu
|
|
// WHERE Tat_McuCorporateID = ?
|
|
// AND Tat_McuT_OrderHeaderID = ?";
|
|
// $qry_cek = $this->db->query($sql_cek, [
|
|
// $corporateID,
|
|
// $orderheaderID
|
|
// ]);
|
|
|
|
// if (!$qry_cek) {
|
|
// $this->sys_error_db("select tat mcu error", $this->db);
|
|
// exit;
|
|
// }
|
|
|
|
// $rows_cek = $qry_cek->result_array();
|
|
|
|
// foreach ($rows_cek as $k => $v) {
|
|
|
|
// }
|
|
$sql_delete = "DELETE FROM tat_mcu WHERE Tat_McuCorporateID = ?
|
|
AND Tat_McuT_OrderHeaderID = ?";
|
|
$qry_delete = $this->db->query($sql_delete, [
|
|
$corporateID,
|
|
$orderheaderID
|
|
]);
|
|
if (!$qry_delete) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error_db("delete tat mcu error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
|
|
$sql_insert = "INSERT INTO tat_mcu(
|
|
Tat_McuCorporateID,
|
|
Tat_McuCorporateName,
|
|
Tat_McuMgm_McuID,
|
|
Tat_McuMgm_McuLabel,
|
|
Tat_McuT_OrderHeaderID,
|
|
Tat_McuT_OrderHeaderDate,
|
|
Tat_McuM_PatientID,
|
|
Tat_McuM_PatientName,
|
|
Tat_McuT_BahanID,
|
|
Tat_McuT_BahanName,
|
|
Tat_McuCheckInDate,
|
|
Tat_McuCheckInUserID,
|
|
Tat_McuCheckOutDate,
|
|
Tat_McuCheckOutUserID,
|
|
Tat_McuResultDate,
|
|
Tat_McuResultUserID,
|
|
Tat_McuAuthorisasiDate,
|
|
Tat_McuAuthorisasiUserID,
|
|
Tat_McuKesimpulandanSaranDate,
|
|
Tat_McuKesimpulandanSaranUserID,
|
|
Tat_McuAuthorisasiDoctorDate,
|
|
Tat_McuAuthorisasiDoctorUserID,
|
|
Tat_McuCreated
|
|
) VALUES(
|
|
'{$corporateID}',
|
|
'{$corporateName}',
|
|
'{$mgmmcuID}',
|
|
'{$mgmmcuLabel}',
|
|
'{$orderheaderID}',
|
|
'{$orderheaderDate}',
|
|
'{$patientID}',
|
|
'{$patientName}',
|
|
'{$bahanID}',
|
|
'{$bahanName}',
|
|
'{$checkIn}',
|
|
'{$checkInUserID}',
|
|
'{$checkOut}',
|
|
'{$checkOutUserID}',
|
|
'{$resultDate}',
|
|
'{$resultUserID}',
|
|
'{$authorisasiDate}',
|
|
'{$authorisasiUserID}',
|
|
'{$resumeValidationKSDate}',
|
|
'{$resumeValidationKSUserID}',
|
|
'{$resumeValidationDoctorDate}',
|
|
'{$resumeValidationDoctorUserID}',
|
|
NOW()
|
|
)";
|
|
$qry_insert = $this->db->query($sql_insert);
|
|
// echo $this->db->last_query();
|
|
// exit;
|
|
if (!$qry_insert) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error_db("insert tat mcu error", $this->db);
|
|
exit;
|
|
}
|
|
|
|
$this->db->trans_commit();
|
|
echo json_encode(
|
|
array(
|
|
'status' => 'OK',
|
|
'message' => 'Berhasil Insert Data'
|
|
)
|
|
);
|
|
}
|
|
}
|