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' ) ); } }