db_smartone = $this->load->database("onedev", true); } public function search() { $prm = $this->sys_input; $max_rst = 10; $deliverytype_id = $prm["filter_delivery"]; //echo $deliverytype_id; $filter_deliverytype = ""; if($deliverytype_id != '0') $filter_deliverytype = " AND T_OrderDeliveryM_DeliveryTypeID = {$deliverytype_id}"; //echo $filter_deliverytype; $sdate = $prm["start_date"]; $search = '%' . $prm["search"] . '%'; $page = $prm['page']; $current_page = isset($prm['current_page'])?$prm['current_page']:1; $filter_search = ''; if($prm['search'] != ''){ $filter_search = "WHERE ( M_PatientName LIKE '{$search}' or T_OrderHeaderLabNumber like '{$search}' or T_OrderHeaderLabNumberExt like '{$search}' )" ; } $number_limit = 10; $number_offset = ($current_page - 1) * $number_limit ; if ($page == null) $page = 1; $offset = ($page - 1) * $max_rst; // OVERRIDE $q_company = ""; $company_id = 0; if (isset($prm["company_id"])) $company_id = $prm["company_id"]; if ($company_id > 0 ) { if($filter_search == '') $filter_search .= 'WHERE '; if($filter_search != '' && $filter_search != 'WHERE ') $filter_search .= ' AND '; if($prm["exclude"]) $filter_search .= " T_OrderHeaderM_CompanyID <> {$company_id}"; if(!$prm["exclude"]){ $filter_search .= " T_OrderHeaderM_CompanyID = {$company_id}"; } } if (isset($prm["mou_id"])) $mou_id = $prm["mou_id"]; if ($mou_id > 0 ) { if($filter_search == '') $filter_search .= 'WHERE '; if($filter_search != '' && $filter_search != 'WHERE ') $filter_search .= ' AND '; $filter_search .= " T_OrderHeaderM_MouID = {$mou_id}"; } $total_day = 0; $total_susulan = 0; // QUERY TOTAL $sql = " SELECT COUNT(*) total FROM ( SELECT * FROM ( SELECT T_OrderHeaderID, T_OrderHeaderM_CompanyID, T_OrderHeaderM_MouID,T_OrderPromiseID, T_OrderHeaderLabNumber, T_OrderHeaderDate, DATE_FORMAT(T_OrderHeaderDate,'%d.%m.%Y %H:%i') as order_date, T_OrderHeaderFoNote, T_OrderHeaderSamplingNote, T_OrderHeaderResultNote, M_PatientName, T_OrderHeaderIsCito, '' as deliveries, T_OrderPromiseDateTime, '' is_history, if(T_OrderHeaderAddOnLabNumberOrigin is null, T_OrderHeaderLabNumberExt, T_OrderHeaderAddOnLabNumberOrigin) T_OrderHeaderLabNumberExt, T_OrderHeaderAddOnVerificationDone, T_OrderHeaderAddOnValidationDone, T_OrderHeaderAddOnReadyPrint as ready_print, T_OrderHeaderAddonReadyPrintDate FROM t_orderheader JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderHeaderID = T_OrderPromiseT_OrderHeaderID AND T_OrderPromiseIsActive = 'Y' JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN documentation_group_detail ON DocumentationGroupDetailNat_SubGroupID = T_TestNat_SubGroupID AND DocumentationGroupDetailIsActive = 'Y' JOIN documentation_group ON DocumentationGroupDetailDocumentationGroupID = DocumentationGroupID AND DocumentationGroupName = 'LAB' WHERE T_OrderHeaderAddOnFOVerification = 'Y' AND (DATE(T_OrderPromiseDateTime) = '{$sdate}') AND T_OrderHeaderIsActive = 'Y' GROUP BY T_OrderHeaderID,DATE(T_OrderPromiseDateTime) ) x $filter_search ) xx "; //echo $sql; $query = $this->db_smartone->query($sql); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count/$number_limit); } else { $this->sys_error_db("m_doctor count", $this->db_smartone); exit; } $sql = "SELECT * FROM ( SELECT T_OrderHeaderID, T_OrderHeaderM_CompanyID,T_OrderHeaderM_MouID, T_OrderPromiseID, T_OrderHeaderLabNumber, T_OrderHeaderDate, DATE_FORMAT(T_OrderHeaderDate,'%d.%m.%Y %H:%i') as order_date, M_SexName, M_TitleName, CONCAT(M_TitleName,' ',M_PatientName) as patient_fullname, M_PatientName, T_OrderHeaderFoNote, T_OrderHeaderSamplingNote, T_OrderHeaderResultNote, T_OrderHeaderIsCito, '' as deliveries, T_OrderPromiseDateTime, '' is_history, if(T_OrderHeaderAddOnLabNumberOrigin is null, T_OrderHeaderLabNumberExt, T_OrderHeaderAddOnLabNumberOrigin) T_OrderHeaderLabNumberExt, T_OrderHeaderAddOnVerificationDone, T_OrderHeaderAddOnValidationDone, T_OrderHeaderAddOnReadyPrint as ready_print, 0 as count_print, T_OrderHeaderAddonReadyPrintDate, GROUP_CONCAT(DISTINCT DATE_FORMAT(T_OrderPromiseDateTime,'%d.%m.%Y %H:%i') separator ', ') as janji_manis FROM t_orderheader JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN m_title ON M_PatientM_TitleID = M_TitleID JOIN m_sex ON M_PatientM_SexID = M_SexID JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y' JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderHeaderID = T_OrderPromiseT_OrderHeaderID AND T_OrderPromiseIsActive = 'Y' JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN documentation_group_detail ON DocumentationGroupDetailNat_SubGroupID = T_TestNat_SubGroupID AND DocumentationGroupDetailIsActive = 'Y' JOIN documentation_group ON DocumentationGroupDetailDocumentationGroupID = DocumentationGroupID AND DocumentationGroupName = 'LAB' WHERE T_OrderHeaderAddOnFOVerification = 'Y' AND (DATE(T_OrderPromiseDateTime) = '{$sdate}') AND T_OrderHeaderIsActive = 'Y' GROUP BY T_OrderHeaderID,DATE(T_OrderPromiseDateTime) ORDER BY T_OrderHeaderAddOnReadyPrint DESC, T_OrderHeaderID ASC ) x $filter_search limit $number_limit offset $number_offset "; $query = $this->db_smartone->query($sql); // echo $this->db_smartone->last_query(); if ($query) { $rows = $query->result_array(); foreach ($rows as $k => $v) { $rows[$k]['data'] = json_decode($v['data']); $rows[$k]['M_PatientName'] = stripslashes($rows[$k]['M_PatientName']); $sql = "SELECT MAX(T_OrderDetailPrintCount) as xcount FROM t_orderdetail JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' WHERE T_OrderDetailT_OrderHeaderID = {$v['T_OrderHeaderID']} AND T_OrderDetailT_TestIsResult = 'Y' AND T_OrderDetailIsActive = 'Y'"; $rows[$k]['count_print'] = $this->db_smartone->query($sql)->row()->xcount; } $result = array("total" => $tot_count, "total_page" => $tot_page, "total_day"=>$total_day,"total_susulan"=>$total_susulan,"cur_page" => $page, "records" => $rows, "total_display" => sizeof($rows), "q" => $this->db_smartone->last_query()); $this->sys_ok($result); } else { $this->sys_error_db("worklist rows", $this->db_smartone); exit; } } function get_deliverytype(){ $sql = " SELECT '0' as id, 'x' as code,'Semua' as name UNION SELECT M_DeliveryTypeID as id, M_DeliveryTypeCode as code, M_DeliveryTypeName as name FROM m_deliverytype WHERE M_DeliveryTypeIsActive = 'Y'"; $rows = $this->db_smartone->query($sql)->result_array(); $result = array("total" => count($rows), "records" => $rows); $this->sys_ok($result); } function getdeliveries(){ $prm = $this->sys_input; $ready_print = $prm['ready_print']; $rows = array(); $sql = " SELECT *, IFNULL(T_OrderHeaderAddOnValidationInternal,'') T_OrderHeaderAddOnValidationInternal, IFNULL(T_OrderHeaderAddOnAliasDoctorName,'') T_OrderHeaderAddOnAliasDoctorName, IFNULL(T_OrderHeaderAddOnAliasDoctorAddress,'') T_OrderHeaderAddOnAliasDoctorAddress, IFNULL(M_UserUsername,'') M_UserUsername FROM t_orderheader JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderAddOnIsActive = 'Y' JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID LEFT JOIN m_user ON T_OrderHeaderAddonValidationInternalM_UserID = M_UserID WHERE T_OrderHeaderID = {$prm['id']}"; //echo $sql; $row_data_order = $this->db_smartone->query($sql)->row(); $flag_show_alert_doctor = 'N'; if($row_data_order){ if($row_data_order->T_OrderHeaderAddOnAliasDoctorName != '' && trim($row_data_order->M_DoctorName) == '-' && strtoupper($row_data_order->M_CompanyName) != 'PASIEN MANDIRI' && strpos(strtoupper($row_data_order->M_CompanyName), 'PRAMITA') === false) $flag_show_alert_doctor = 'Y'; } $alias_doctor_name = $row_data_order->T_OrderHeaderAddOnAliasDoctorName; $alias_doctor_addr = $row_data_order->T_OrderHeaderAddOnAliasDoctorAddress; $internal_note = $row_data_order->T_OrderHeaderAddOnValidationInternal; $internal_note_user = $row_data_order->M_UserUsername; $arr_notes = array(); $sql = "SELECT IFNULL(T_OrderHeaderFoNote,'') as fo_note, fn_getstaffname(T_OrderHeaderFoNoteM_UserID) as fo_note_user, IFNULL(T_OrderHeaderVerificationNote,'') as fo_ver_note, fn_getstaffname(T_OrderHeaderVerificationNoteM_UserID) as fo_ver_note_user, IFNULL(T_OrderHeaderSamplingNote,'') as sampling_note, fn_getstaffname(T_OrderHeaderSamplingNoteM_UserID) as sampling_note_user, IFNULL(T_OrderHeaderResultNote,'') as result_note, fn_getstaffname(T_OrderHeaderResultNoteM_UserID) as result_note_user, IFNULL(T_OrderHeaderAddOnValidationInternal,'') as validation_note, fn_getstaffname(T_OrderHeaderAddonValidationInternalM_UserID) as validation_note_user FROM t_orderheader JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderAddOnIsActive = 'Y' WHERE T_OrderHeaderID = {$prm['id']}"; //echo $sql; $notes = $this->db_smartone->query($sql)->row_array(); $sql = "SELECT T_OrderDeliveryID as id, M_DeliveryTypeID as delivery_type_id, M_DeliveryTypeCode as code,M_DeliveryName as name, CASE WHEN M_DeliveryTypeCode = 'PICKUP' THEN 'account_circle' WHEN M_DeliveryTypeCode = 'ADDRESS' THEN 'local_shipping' WHEN M_DeliveryTypeCode = 'EMAIL' THEN 'email' END as icon, CASE WHEN M_DeliveryTypeCode = 'PICKUP' THEN 'red lighten-2' WHEN M_DeliveryTypeCode = 'ADDRESS' THEN 'brown lighten-2' WHEN M_DeliveryTypeCode = 'EMAIL' THEN 'pink lighten-2' WHEN M_DeliveryTypeCode = 'WHATSAPP' THEN 'teal lighten-2' WHEN M_DeliveryTypeCode = 'TELEGRAM' THEN 'blue lighten-2' END as color, T_OrderDeliveryDestination FROM t_orderdelivery JOIN m_delivery ON T_OrderDeliveryM_DeliveryID = M_DeliveryID JOIN m_deliverytype ON T_OrderDeliveryM_DeliveryTypeID = M_DeliveryTypeID WHERE T_OrderDeliveryT_OrderHeaderID = {$prm['id']} AND T_OrderDeliveryIsActive = 'Y'"; //echo $sql; $rows['deliveries'] = $this->db_smartone->query($sql)->result_array(); //$result = array("total" => count($rows), "records" => $rows); $date_promise = date('Y-m-d',strtotime($prm['promise_date'])); $sql = " SELECT * FROM ( SELECT Group_ResultID as id, Group_ResultName as group_name, '' as rpt, '' as e_rpt, '' as rptqrcode, 'N' as selected, T_OrderDetailT_OrderHeaderID as order_id, 'rpt' as type, T_OrderHeaderAddOnReadyPrint as ready_print, M_LangCode as lang FROM t_orderdetail JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderPromiseIsActive = 'Y' AND DATE(T_OrderPromiseDatetime) = '{$date_promise}' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND Group_ResultName <> 'Mikro' JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN m_lang ON T_OrderHeaderM_LangID = M_LangID WHERE T_OrderDetailT_OrderHeaderID = {$prm['id']} AND T_OrderDetailIsActive = 'Y' GROUP BY Group_ResultID UNION SELECT Group_ResultID as id, CONCAT(Group_ResultName,'_',M_LangCode) as group_name, '' as rpt, '' as e_rpt, '' as rptqrcode, 'N' as selected, T_OrderDetailT_OrderHeaderID as order_id, 'rpt' as type, T_OrderHeaderAddOnReadyPrint as ready_print, M_LangCode as lang FROM t_orderdetail JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderPromiseIsActive = 'Y' AND DATE(T_OrderPromiseDatetime) = '{$date_promise}' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND Group_ResultName <> 'Mikro' JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID WHERE T_OrderDetailT_OrderHeaderID = {$prm['id']} AND T_OrderDetailIsActive = 'Y' GROUP BY Group_ResultID UNION SELECT T_OrderDetailID as id, Group_ResultName as group_name, '' as rpt, '' as e_rpt, '' as rptqrcode, 'N' as selected, T_OrderDetailT_OrderHeaderID as order_id, 'rpt' as type, T_OrderHeaderAddOnReadyPrint as ready_print, M_LangCode as lang FROM t_orderdetail JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y' JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderPromiseIsActive = 'Y' AND DATE(T_OrderPromiseDatetime) = '{$date_promise}' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND Group_ResultName = 'Mikro' JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN m_lang ON T_OrderHeaderM_LangID = M_LangID WHERE T_OrderDetailT_OrderHeaderID = {$prm['id']} AND T_OrderDetailIsActive = 'Y' GROUP BY T_OrderDetailID UNION SELECT T_OrderDetailID as id, CONCAT(Group_ResultName,'_',M_LangCode) as group_name, '' as rpt, '' as e_rpt, '' as rptqrcode, 'N' as selected, T_OrderDetailT_OrderHeaderID as order_id, 'rpt' as type, T_OrderHeaderAddOnReadyPrint as ready_print, M_LangCode as lang FROM t_orderdetail JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y' JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderPromiseIsActive = 'Y' AND DATE(T_OrderPromiseDatetime) = '{$date_promise}' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND Group_ResultName = 'Mikro' JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID WHERE T_OrderDetailT_OrderHeaderID = {$prm['id']} AND T_OrderDetailIsActive = 'Y' GROUP BY T_OrderDetailID UNION SELECT Group_ResultID as id, Group_ResultName as group_name, '' as rpt, '' as e_rpt, '' as rptqrcode, 'N' as selected, T_OrderDetailT_OrderHeaderID as order_id, 'info' as type, T_OrderHeaderAddOnReadyPrint as ready_print, M_LangCode as lang FROM t_orderdetail JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderPromiseIsActive = 'Y' AND DATE(T_OrderPromiseDatetime) = '{$date_promise}' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND ( Group_ResultName = 'Manthoux Test' OR Group_ResultName = 'Tensi' ) JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN m_lang ON T_OrderHeaderM_LangID = M_LangID WHERE T_OrderDetailT_OrderHeaderID = {$prm['id']} AND T_OrderDetailIsActive = 'Y' GROUP BY Group_ResultID UNION SELECT Group_ResultID as id, CONCAT(Group_ResultName,'_',M_LangCode) as group_name, '' as rpt, '' as e_rpt, '' as rptqrcode, 'N' as selected, T_OrderDetailT_OrderHeaderID as order_id, 'info' as type, T_OrderHeaderAddOnReadyPrint as ready_print, M_LangCode as lang FROM t_orderdetail JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID AND T_OrderPromiseIsActive = 'Y' AND DATE(T_OrderPromiseDatetime) = '{$date_promise}' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND ( Group_ResultName = 'Manthoux Test' OR Group_ResultName = 'Tensi' ) JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID WHERE T_OrderDetailT_OrderHeaderID = {$prm['id']} AND T_OrderDetailIsActive = 'Y' GROUP BY Group_ResultID ) x ORDER BY type desc, id ASC "; //echo $sql; $rows['groups'] = $this->db_smartone->query($sql)->result_array(); if($rows['groups']){ $exist_lab = 'N'; foreach($rows['groups'] as $kx => $vx){ if($vx['group_name'] == 'LAB') $exist_lab = 'Y'; } foreach($rows['groups'] as $k => $v){ $ready_print = $v['ready_print']; $e_rpt = ''; if($v['group_name'] == 'LAB'){ $rpt = 'rpt_test_not_print'; $e_rpt = 'rpt_test_not_print'; $rptqrcode = 'rpt_test_not_print'; if($ready_print != 'N'){ $rpt = 'rpt_test';$e_rpt = 'rpt_test_email';$rptqrcode = 'rpt_test_prev'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rptqrcode; } if($v['group_name'] == 'LAB_EN' || $v['group_name'] == 'Mikro_EN'){ $rpt = 'rpt_test_not_print_eng'; $e_rpt = 'rpt_test_not_print_eng'; if($ready_print != 'N'){ $rpt = 'rpt_test_eng';$e_rpt = 'rpt_test_email_eng';$rptqrcode = 'rpt_test_eng_prev'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rptqrcode; } if($v['group_name'] == 'Preparasi Sperma'){ $rpt = 'rpt_hasil_sperma_not_print'; $e_rpt = 'rpt_hasil_sperma_not_print'; if($ready_print != 'N'){ $rpt = 'rpt_hasil_sperma';$e_rpt = 'rpt_hasil_sperma_email'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rpt; } if($v['group_name'] == 'dfi'){ $rpt = 'rpt_hasil_dfi_not_print'; $e_rpt = 'rpt_hasil_dfi_not_print'; if($ready_print != 'N'){ $rpt = 'rpt_hasil_dfi';$e_rpt = 'rpt_hasil_dfi_email'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rpt; } if($v['group_name'] == 'FNA'){ $rpt = 'rpt_hasil_fna_not_print'; $e_rpt = 'rpt_hasil_fna_not_print'; if($ready_print != 'N'){ $rpt = 'rpt_hasil_fna';$e_rpt = 'rpt_hasil_fna_email'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rpt; } if($v['group_name'] == 'Papsmear'){ $rpt = 'rpt_hasil_papsmear_not_print'; $e_rpt = 'rpt_hasil_papsmear_not_print'; if($ready_print != 'N'){ $rpt = 'rpt_hasil_papsmear';$e_rpt = 'rpt_hasil_papsmear_email'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rpt; } if($v['group_name'] == 'Pap Smear (Liquid C Prep)'){ $rpt = 'rpt_hasil_lcprep_not_print'; $e_rpt = 'rpt_hasil_lcprep_not_print'; if($ready_print != 'N'){ $rpt = 'rpt_hasil_lcprep';$e_rpt = 'rpt_hasil_lcprep_email'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = 'rpt_hasil_lcprep_qrcode'; } if($v['group_name'] == 'Mikro'){ $rpt_name = 'rpt_test_mikro'; $e_rpt_name = 'rpt_test_mikro_email'; $sql = "SELECT T_OrderDetailResult as result FROM t_orderdetail JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND Group_ResultName = 'Mikro' WHERE T_OrderDetailID = {$v['id']} AND T_OrderDetailIsActive = 'Y' LIMIT 1"; //echo $sql; $xresult = $this->db_smartone->query($sql)->row()->result; if($xresult != 'Terlampir'){ $rpt_name = 'rpt_test'; $e_rpt_name = 'rpt_test_email'; } $rpt = $rpt_name.'_not_print'; $e_rpt = ''; if($ready_print != 'N'){ $rpt = $rpt_name;$e_rpt = $e_rpt_name; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rpt; if($xresult == 'Terlampir' && $exist_lab == 'N'){ $rows['groups'][$k]['group_name'] = 'Lampiran Mikro'; $new_group = $rows['groups'][$k]; $new_group['group_name'] = 'Mikro'; $new_group['rpt'] = 'rpt_test'; $new_group['e_rpt'] = 'rpt_test_email'; $new_group['rptqrcode'] = 'rpt_test'; array_push($rows['groups'],$new_group); } } if($v['group_name'] == 'Cytologi'){ $rpt = 'rpt_hasil_cytologi_not_print'; $e_rpt = 'rpt_hasil_cytologi_not_print'; if($ready_print != 'N'){ $rpt = 'rpt_hasil_cytologi';$e_rpt = 'rpt_hasil_cytologi_email'; } $rows['groups'][$k]['rpt'] = $rpt; $rows['groups'][$k]['e_rpt'] = $e_rpt; $rows['groups'][$k]['rptqrcode'] = $rpt; } } $rows['groups'][0]['selected'] = 'Y'; } $sql = "SELECT IF(M_MouIsBill = 'Y','Y',Last_StatusPaymentIsLunas) as xpayment FROM last_statuspayment join t_orderheader ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID JOIN m_mou ON T_OrderHeaderM_MouID = M_MouID WHERE Last_StatusPaymentT_OrderHeaderID = {$prm['id']}"; //echo $sql; $rows['status_payment'] = $this->db_smartone->query($sql)->row()->xpayment; $sql = "SELECT MAX(T_OrderDetailPrintCount) as xcount FROM t_orderdetail JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' WHERE T_OrderDetailT_OrderHeaderID = {$prm['id']} AND T_OrderDetailT_TestIsResult = 'Y' AND T_OrderDetailIsActive = 'Y'"; //echo $sql; $rows['print_count'] = $this->db_smartone->query($sql)->row()->xcount; $result = array( "total" => count($rows), "records" => $rows, "alert_doctor"=>array( 'show'=>$flag_show_alert_doctor, 'doctor_name'=>$alias_doctor_name, 'doctor_address'=>$alias_doctor_addr ), "notes"=>$notes ); $this->sys_ok($result); } function releaseresult(){ $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $patients = $prm['patients']; $xdate = $prm['xdate']; if($prm['selectall']){ $sql = "SELECT T_OrderHeaderAddOnT_OrderHeaderID as T_OrderHeaderID FROM t_orderheaderaddon JOIN t_orderheader ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID JOIN t_orderpromise ON T_OrderPromiseT_OrderHeaderID = T_OrderHeaderID AND T_OrderPromiseIsActive = 'Y' WHERE (DATE(T_OrderHeaderDate) = '{$xdate}' OR DATE(T_OrderPromiseDateTime) = '{$xdate}') AND T_OrderHeaderAddOnReadyPrint = 'Y' AND T_OrderHeaderAddOnIsActive = 'Y'"; //echo $sql; $patients = $this->db_smartone->query($sql)->result_array(); } $arr_patients = []; foreach($patients as $k => $v){ array_push($arr_patients,$v['T_OrderHeaderID']); } $join_patients = "(".join(",",$arr_patients).")"; $sql = " INSERT INTO result_processtooffice ( Result_ProcessToOfficeT_OrderHeaderID, Result_ProcessToOfficeT_OrderDeliveryID, Result_ProcessToOfficeT_OrderDeliveryM_DeliveryTypeID, Result_ProcessToOfficeT_OrderDeliveryM_DeliveryID, Result_ProcessToOfficeT_OrderPromiseID, Result_ProcessToOfficeGroup_ResultID, Result_ProcessToOfficeSendBy, Result_ProcessToOfficeSendTime, Result_ProcessToOfficeUserID, Result_ProcessToOfficeCreated, Result_ProcessToOfficeLastUpdated ) SELECT T_OrderDetailT_OrderHeaderID, T_OrderDeliveryID, T_OrderDeliveryM_DeliveryTypeID, T_OrderDeliveryM_DeliveryID, T_OrderPromiseID, Group_ResultID, {$userid}, NOW(), {$userid}, NOW(), NOW() FROM t_orderdetail JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y' AND T_TestIsNonLab = '' JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID JOIN t_orderdelivery ON T_OrderDeliveryT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_OrderDeliveryIsActive = 'Y' JOIN t_orderpromise ON T_OrderDetailT_OrderPromiseID = T_OrderPromiseID LEFT JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND Result_ProcessToOfficeT_OrderPromiseID = T_OrderDetailT_OrderPromiseID AND Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Result_ProcessToOfficeStatus = 'S' AND Result_ProcessToOfficeIsActive = 'Y' WHERE T_OrderDetailT_OrderHeaderID IN {$join_patients} AND T_OrderDetailT_OrderPromiseID <> 0 AND ISNULL(Result_ProcessToOfficeID) AND T_OrderDetailValidation = 'Y' AND T_OrderDetailIsActive = 'Y' GROUP BY T_OrderDeliveryID, T_OrderPromiseID, Group_ResultID "; //echo $sql; $rows = $this->db_smartone->query($sql); $sql = "UPDATE t_orderheaderaddon SET T_OrderHeaderAddOnReadyPrint = 'P', T_OrderHeaderAddOnUserID = {$userid} WHERE T_OrderHeaderAddOnT_OrderHeaderID IN {$join_patients}"; $this->db_smartone->query($sql); $result = array("total" => count($rows), "records" => $rows); $this->sys_ok($result); } function printcount(){ $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $sql = " UPDATE t_orderdetail SET T_OrderDetailPrintCount = T_OrderDetailPrintCount +1, T_OrderDetailPrintBy = $userid, T_OrderDetailPrintTime = NOW() WHERE T_OrderDetailValidation = 'Y' AND T_OrderDetailT_OrderHeaderID = {$prm['orderid']} "; //echo $sql; $this->db_smartone->query($sql); $sql = "SELECT MAX(T_OrderDetailPrintCount) as xcount FROM t_orderdetail JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' WHERE T_OrderDetailT_OrderHeaderID = {$prm['orderid']} AND T_OrderDetailT_TestIsResult = 'Y' AND T_OrderDetailIsActive = 'Y'"; //echo $sql; $rows['print_count'] = $this->db_smartone->query($sql)->row()->xcount; $result = array("total" => count($rows), "records" => $rows); $this->sys_ok($result); } public function info_req() { $prm = $this->sys_input; $sql = "CALL sp_process_result_reqs(?)"; $query = $this->db_smartone->query($sql, [$prm['order_id']]); if ($query) { $row = $query->row(); $this->sys_ok(json_decode($row->data)); exit; } $this->sys_error_db("RESULT REQ", $this->db_smartone); } }