db_smartone = $this->load->database("onedev", true); } function list() { $prm = $this->sys_input; $station_id = $prm["station_id"]; $start_date = date("Y-m-d 00:00:01"); $end_date = date("Y-m-d 23:59:59"); $sql = "select concat(M_TitleName,' ',M_PatientName) Name, fn_numbering_external(T_OrderHeaderLabNumber) Noreg, case when T_SamplingQueueLastStatusT_SamplingQueueStatusID is null then 'Tunggu' when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 1 then 'Panggil' when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 2 then 'Skip' end Status from t_orderheader join m_patient on M_PatientID = T_OrderHeaderM_PatientID and T_OrderHeaderIsActive = 'Y' join m_title on M_TitleID = M_PatientM_TitleID join t_ordersample on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID left join t_sampling_queue_last_status on T_OrderHeaderID = T_SamplingQueueLastStatusT_OrderHeaderID where ( T_SamplingQueueLastStatusT_SamplingQueueStatusID <= 2 or T_SamplingQueueLastStatusT_SamplingQueueStatusID is null ) and T_OrderHeaderDate > '$start_date' and T_OrderHeaderDate < '$end_date' and T_OrderSampleT_SampleStationID = $station_id group by T_OrderHeaderID order by T_OrderHeaderIsCito desc, T_OrderHeaderID "; $qry = $this->db_smartone->query($sql); if ($qry) { $rows = $qry->result_array(); $this->sys_ok( $rows ); } else { $this->sys_error_db( "", $this->db_smartone ); } } function process() { $prm = $this->sys_input; $station_id = $prm["station_id"]; $start_date = date("Y-m-d 00:00:01"); $end_date = date("Y-m-d 23:59:59"); $sql = "select concat(M_TitleName,' ',M_PatientName) Name, fn_numbering_external(T_OrderHeaderLabNumber) Noreg, case when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 1 then 'Tunggu' when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 2 then 'Tunggu' when T_SamplingQueueLastStatusT_SamplingQueueStatusID = 3 then 'Proses' end Status from t_sampling_queue_last_status join t_orderheader on T_SamplingQueueLastStatusT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y' join m_patient on M_PatientID = T_OrderHeaderM_PatientID join m_title on M_TitleID = M_PatientM_TitleID where T_SamplingQueueLastStatusT_SamplingQueueStatusID = 3 and T_OrderHeaderDate > '$start_date' and T_OrderHeaderDate < '$end_date' and T_SamplingQueueLastStatusT_SampleStationID = $station_id order by T_OrderHeaderIsCito desc, T_OrderHeaderID "; $qry = $this->db_smartone->query($sql); if ($qry) { $rows = $qry->result_array(); $this->sys_ok( $rows ); } else { $this->sys_error_db( "", $this->db_smartone ); } } function generate_sample(){ $sql = "SELECT * FROM t_orderheader"; $qry = $this->db_smartone->query($sql); $datas = $qry->result_array(); if($datas){ foreach ($datas as $key => $value) { $counter_barcode = 1; $sql = "SELECT T_OrderHeaderLabNumber, T_TestID, T_SampleTypeID , T_SampleTypeSuffix, T_SampleStationIsNonLab, T_SampleStationID from t_orderheader JOIN t_orderdetail ON t_orderheaderid = t_orderdetailt_orderheaderid AND t_orderdetailIsActive = 'Y' JOIN t_test ON t_orderdetailt_testid = t_testid AND T_TestIsResult = 'Y' JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID JOIN t_samplestation ON T_BahanT_SampleStationID = T_SampleStationID where T_OrderHeaderID = {$value['T_OrderHeaderID']} group by T_SampleTypeID"; $qry = $this->db_smartone->query($sql); $data_samples = $qry->result_array(); foreach ($data_samples as $k => $v) { $lab_no = $v['T_OrderHeaderLabNumber']; $test_id = $v['T_TestID']; $sample_id = $v['T_SampleTypeID']; $sample_code = $v['T_SampleTypeSuffix']; $barcode = $lab_no.$sample_code; $isnonlab = $v['T_SampleStationIsNonLab']; $samplestation_id = $v['T_SampleStationID']; if( $counter_barcode == 1){ $barcode = $barcode.$counter_barcode; $sql = "INSERT INTO t_barcodelab( T_BarcodeLabT_OrderHeaderID, T_BarcodeLabBarcode, T_BarcodeLabT_SampleTypeID, T_BarcodeLabCounter) VALUES ({$value['T_OrderHeaderID']},'{$barcode}',{$sample_id},{$counter_barcode})"; $this->db_smartone->query($sql); $last_id_barcode = $this->db_smartone->insert_id(); if($isnonlab == ""){ $sql = "INSERT INTO t_ordersample( T_OrderSampleT_OrderHeaderID, T_OrderSampleT_SampleTypeID, T_OrderSampleT_BarcodeLabID, T_OrderSampleBarcode, T_OrderSampleT_SampleStationID) VALUES ({$value['T_OrderHeaderID']},{$sample_id},{$last_id_barcode},'{$barcode}',{$samplestation_id})"; $this->db_smartone->query($sql); } } $sql = "SELECT MAX(T_BarcodeLabCounter) as ctr FROM t_barcodelab WHERE T_BarcodeLabT_OrderHeaderID = {$value['T_OrderHeaderID']} AND T_BarcodeLabBarcode LIKE CONCAT('{$barcode}', '%') AND T_BarcodeLabIsActive = 'Y'"; $qry = $this->db_smartone->query($sql); if($qry){ $ctr = $qry->row()->ctr; $counter_barcode = $ctr + 1; } } } } echo 'Selesai'; } function order_station(){ $sql = "SELECT * FROM t_orderheader"; $qry = $this->db_smartone->query($sql); $datas = $qry->result_array(); if($datas){ foreach ($datas as $key => $value) { $counter_barcode = 1; $sql = "SELECT T_SampleStationID,T_SampleStationName FROM t_orderdetail JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID JOIN t_bahan ON T_SampleTypeT_BahanID = T_BahanID JOIN t_samplestation ON T_BahanT_SampleStationID = T_SampleStationID WHERE T_OrderDetailT_OrderHeaderID = {$value['T_OrderHeaderID']} GROUP BY T_SampleStationID"; $qry = $this->db_smartone->query($sql); $data_samples = $qry->result_array(); foreach ($data_samples as $k => $v) { $sql = "SELECT * FROM m_location WHERE M_LocationT_SampleStationID = {$v['T_SampleStationID']} ORDER BY M_LocationPriority DESC, M_LocationID ASC LIMIT 1"; $location_id = $this->db_smartone->query($sql)->row()->M_LocationID; $sql = "INSERT INTO t_order_location( T_OrderLocationT_OrderHeaderID, T_OrderLocationM_LocationID, T_OrderLocationT_SampleStationID) VALUES ({$value['T_OrderHeaderID']},{$location_id},{$v['T_SampleStationID']})"; $this->db_smartone->query($sql); } } } echo 'Selesai'; } function fisik_umum_generate(){ $sql = " SELECT xsofisik.*, nso.So_ResultEntryID as re_id FROM so_resultentry nso JOIN t_orderheader norder ON nso.So_ResultEntryT_OrderHeaderID = T_OrderHeaderID JOIN xso_resultentry_fisik_umum xsofisik ON xsofisik.T_OrderHeaderLabNumber = norder.T_OrderHeaderLabNumber WHERE `So_ResultEntryNonlab_TemplateName` = 'fisik umum' "; $qry = $this->db_smartone->query($sql); $datas = $qry->result_array(); if($datas){ foreach ($datas as $key => $value) { $re_id = $value['re_id']; $details = json_decode($value['So_ResultEntryFisikUmumDetails'], true); if($value['So_ResultEntryFisikUmumType'] == 'riwayat' || $value['So_ResultEntryFisikUmumType'] == 'fisik'){ foreach ($details as $k => $v) { $title = $v['title']; $sql = " SELECT * FROM fisik_template WHERE `FisikTemplateTitle` = ? AND FisikTemplateIsActive = 'Y' LIMIT 1"; $qry = $this->db_smartone->query($sql,[$title]); // echo $this->db_smartone->last_query(); $templateID = $qry->row()->FisikTemplateID; $result = json_encode($v); $sql = "INSERT INTO so_resultentry_fisik_umum ( So_ResultEntryFisikUmumSo_ResultEntryID, So_ResultEntryFisikUmumFisikTemplateID, So_ResultEntryFisikUmumDetails ) VALUES (?,?,?)"; $this->db_smartone->query($sql,[$re_id,$templateID,$result]); } } } } echo 'Selesai'; } function summarynonlab_generate(){ $sql = " SELECT * FROM mcu_summarynonlab JOIN nonlab_conclusion_mapping ON NonlabConclusionMappingNat_TestID = Mcu_SummaryNonlabNat_TestID AND Mcu_SummaryNonlabIsActive = 'Y' WHERE `Mcu_SummaryNonlabIsActive` = 'Y' "; $qry = $this->db_smartone->query($sql); $datas = $qry->result_array(); if($datas){ foreach ($datas as $key => $value) { $new_ids = []; $exp_val = explode(",",$value['Mcu_SummaryNonlabValue']); foreach ($exp_val as $k => $v) { $sql = "SELECT NonlabConclusionDetailID FROM mcu_statusresult_value JOIN nonlab_conclusion_detail ON NonlabConclusionDetailName = Mcu_StatusResultValueName AND NonlabConclusionDetailNonlabConclusionID = {$value['NonlabConclusionMappingNonlabConclusionID']} WHERE Mcu_StatusResultValueCode = '{$v}' AND Mcu_StatusResultValueIsActive = 'Y'"; $qry = $this->db_smartone->query($sql); $row_id = $qry->row()->NonlabConclusionDetailID; array_push($new_ids,$row_id); } $ids_join = JOIN(",", $new_ids); $sql ="UPDATE mcu_summarynonlab SET Mcu_SummaryNonlabConclusionDetailIDs = '{$ids_join}' WHERE Mcu_SummaryNonlabID = {$value['Mcu_SummaryNonlabID']}"; $this->db_smartone->query($sql); } } echo 'Selesai'; } } ?>