db_onedev = $this->load->database("onedev", true); } public function get_patient() { try { $prm = $this->sys_input; $form_code = $prm['form_code']; $uuid = $prm['id']; $sql = " SELECT FormRiwayatPasienID as xid, Mcu_PreregisterPatientsPatientName as patient_name, M_SexName as gender, DATE_FORMAT(Mcu_PreregisterPatientsDOB, '%d-%m-%Y') as dob, Mcu_PreregisterPatientsPosisi as posisi, Mcu_PreregisterPatientsDivisi as divisi, Mcu_PreregisterPatientsLocation as location_mcu, Mcu_PreregisterPatientsDepartment as department, M_CompanyName as corporate_name, M_CompanyAddress as corporate_address, IFNULL(T_SamplingSoFlag, 'N') as is_sampling FROM form_riwayat_pasien JOIN mcu_preregister_patients ON Mcu_PreregisterPatientsID = FormRiwayatPasienPreregisterID AND Mcu_PreregisterPatientsIsActive = 'Y' JOIN m_patient ON Mcu_PreregisterPatientsM_PatientID = M_PatientID JOIN m_sex ON M_PatientM_SexID = M_SexID JOIN mgm_mcu ON Mcu_PreregisterPatientsMgm_McuID = Mgm_McuID JOIN m_company ON Mgm_McuM_CompanyID = M_CompanyID LEFT JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = FormRiwayatPasienT_OrderHeaderID AND T_SamplingSoIsActive = 'Y' LEFT JOIN t_test ON T_SamplingSoT_TestID = T_TestID AND T_TestIsActive = 'Y' LEFT JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' LEFT JOIN fisik_map_test_template ON Fisik_MapTestTemplateNat_TestID = Nat_TestID AND Fisik_MapTestTemplateIsActive = 'Y' WHERE FormRiwayatPasienCode = ? AND FormRiwayatPasienUUID = ? AND FormRiwayatPasienIsActive = 'Y' "; $sql_param = array($form_code, $uuid); $query = $this->db_onedev->query($sql, $sql_param); if(!$query){ //echo $this->db_onedev->last_query(); $this->sys_error_db("form_riwayat_pasien error get exist"); exit; } $exist_riwayat = $query->result_array(); if(count($exist_riwayat) > 0){ $sql = ""; $result = array ("total" => 1, "total_filter"=>1,"records" => $exist_riwayat[0]); $this->sys_ok($result); }else{ $this->sys_error("Data tidak ditemukan"); } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function get_riwayat() { try { $prm = $this->sys_input; $xid = $prm['id']; $results = array(); $return_data = array(); $sql = " SELECT FisikTemplateID as fisik_template_id, FisikTemplateCode as template_code, FisikTemplateTableName as template_table_name, FisikTemplateTitle as template_title, FormRiwayatPasienTemplateDetails as details, FormRiwayatPasienTemplateID as xid FROM form_riwayat_pasien JOIN form_riwayat_pasien_template ON FormRiwayatPasienTemplateFormRiwayatPasienID = FormRiwayatPasienID AND FormRiwayatPasienTemplateIsActive = 'Y' JOIN fisik_template ON FormRiwayatPasienTemplateFisikTemplateID = FisikTemplateID AND FisikTemplateIsActive = 'Y' AND FisikTemplateType = 'Riwayat' WHERE FormRiwayatPasienID = ? AND FormRiwayatPasienIsActive = 'Y' GROUP BY FisikTemplateID "; $sql_param = array($xid); $query = $this->db_onedev->query($sql, $sql_param); if(!$query){ $this->sys_error_db("form_riwayat_pasien error get exist"); exit; } $exist_riwayat = $query->result_array(); if(count($exist_riwayat) > 0){ foreach($exist_riwayat as $key => $item){ //$results[$key]['details'] = json_decode($item['details'], true); //$results[$key]['xid'] = $item['xid']; $return_data[] = json_decode($item['details'], true); } $result = array ("records" => $return_data); $this->sys_ok($result); exit; } $sql = " SELECT * FROM form_riwayat_pasien JOIN mcu_preregister_patients ON Mcu_PreregisterPatientsID = FormRiwayatPasienPreregisterID AND Mcu_PreregisterPatientsIsActive = 'Y' JOIN mgm_mcu ON Mcu_PreregisterPatientsMgm_McuID = Mgm_McuID WHERE FormRiwayatPasienID = ? AND FormRiwayatPasienIsActive = 'Y' LIMIT 1"; $query = $this->db_onedev->query($sql, array($xid)); if(!$query){ $this->sys_error_db("form_riwayat_pasien error get exist"); exit; } $dt_tests = $query->row_array(); $orders = explode(',', $dt_tests['Mcu_PreregisterPatientsOrders']); $mou_id = $dt_tests['Mgm_McuM_MouID']; $template_map_fisik = []; foreach($orders as $order){ $sql = "SELECT ss_price_mou.T_TestID as id, is_packet FROM ss_price_mou JOIN t_packet ON packet_id = T_PacketID AND T_PacketIsActive = 'Y' AND T_PacketSasCode = ? WHERE Ss_PriceMouM_MouID = ? AND is_packet = 'Y' UNION SELECT ss_price_mou.T_TestID as id, is_packet FROM ss_price_mou JOIN t_test test ON ss_price_mou.T_TestID = test.T_TestID AND test.T_TestIsActive = 'Y' AND test.T_TestSasCode = ? WHERE Ss_PriceMouM_MouID = ? AND is_packet = 'N' "; $query = $this->db_onedev->query($sql, array( $order, $mou_id, $order, $mou_id)); //echo $this->db_onedev->last_query().';'; //echo '
'; $dt_price = $query->result_array(); if(count($dt_price) > 0){ if($dt_price[0]['is_packet'] == 'Y'){ $sql = "SELECT fisik_map_test_template.* FROM t_packetdetail JOIN t_test ON T_PacketDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' JOIN fisik_map_test_template ON Fisik_MapTestTemplateNat_TestID = T_TestNat_TestID AND Fisik_MapTestTemplateIsActive = 'Y' WHERE T_PacketDetailT_PacketID = ? AND T_PacketDetailIsActive = 'Y'"; $query = $this->db_onedev->query($sql, array($dt_price[0]['id'])); //echo $this->db_onedev->last_query().';'; //echo '
'; $dt_map_fisik = $query->result_array(); if(count($dt_map_fisik) > 0){ $template_map_fisik = $dt_map_fisik[0]; } }else{ $sql = "SELECT fisik_map_test_template.* FROM t_test JOIN fisik_map_test_template ON Fisik_MapTestTemplateNat_TestID = T_TestNat_TestID AND Fisik_MapTestTemplateIsActive = 'Y' WHERE T_TestIsActive = 'Y' AND T_TestID = ?"; $query = $this->db_onedev->query($sql, array($dt_price[0]['id'])); //echo $this->db_onedev->last_query().';'; //echo '
'; $dt_map_fisik = $query->result_array(); if(count($dt_map_fisik) > 0){ $template_map_fisik = $dt_map_fisik[0]; } } } } if($template_map_fisik == []){ $this->sys_error("Template tidak ditemukan"); exit; } $sql = " SELECT FisikTemplateID as fisik_template_id, FisikTemplateCode as template_code, FisikTemplateTableName as template_table_name, FisikTemplateTitle as template_title, FisikTemplateJSON as details FROM form_riwayat_pasien JOIN fisik_template_mapping ON FisikTemplateMappingID = ? AND FisikTemplateMappingIsActive = 'Y' JOIN fisik_template_mapping_detail ON FisikTemplateMappingDetailFisikTemplateMappingID = FisikTemplateMappingID AND FisikTemplateMappingDetailIsActive = 'Y' JOIN fisik_template ON FisikTemplateMappingDetailFisikTemplateID = FisikTemplateID AND FisikTemplateIsActive = 'Y' AND FisikTemplateType = 'Riwayat' WHERE FormRiwayatPasienID = ? AND FormRiwayatPasienIsActive = 'Y' GROUP BY FisikTemplateID"; $sql_param = array($template_map_fisik['Fisik_MapTestTemplateFisikTemplateMappingID'],$xid); $query = $this->db_onedev->query($sql, $sql_param); echo $this->db_onedev->last_query(); //exit; if(!$query){ //echo $this->db_onedev->last_query(); $this->sys_error_db("form_riwayat_pasien error get exist"); exit; } $riwayat_template = $query->result_array(); foreach($riwayat_template as $key => $item){ $sql = " SELECT * FROM form_riwayat_pasien_template WHERE FormRiwayatPasienTemplateFisikTemplateID = ? AND FormRiwayatPasienTemplateFormRiwayatPasienID = ? AND FormRiwayatPasienTemplateIsActive = 'Y'"; $sql_param = array($item['fisik_template_id'], $xid); $query = $this->db_onedev->query($sql, $sql_param); if(!$query){ $this->sys_error_db("form_riwayat_pasien error get exist"); exit; } $exist_riwayat = $query->result_array(); if(count($exist_riwayat) > 0){ //$results[$key]['details'] = json_decode($exist_riwayat[0]['details'], true); $return_data[] = json_decode($exist_riwayat[0]['details'], true); }else{ $details = json_decode($item['details'], true); $sql = "INSERT INTO form_riwayat_pasien_template ( FormRiwayatPasienTemplateFormRiwayatPasienID, FormRiwayatPasienTemplateFisikTemplateID, FormRiwayatPasienTemplateDetails, FormRiwayatPasienTemplateIsActive, FormRiwayatPasienTemplateCreated, FormRiwayatPasienTemplateCreatedUserID) VALUES (?, ?, ?, 'Y',NOW(),45312)"; $sql_param = array($xid, $item['fisik_template_id'], json_encode($details)); $query = $this->db_onedev->query($sql, $sql_param); if(!$query){ $this->sys_error_db("form_riwayat_pasien error save"); exit; } //$last_id = $this->db_onedev->insert_id(); //$results[$key]['xid'] = $last_id; $return_data[] = $details; } } $result = array ("records" => $return_data); $this->sys_ok($result); exit; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function clean_json_encode($data) { return str_replace( ['\r', '\n'], '', json_encode($data, JSON_UNESCAPED_SLASHES) ); } public function save_riwayat() { try { $prm = $this->sys_input; $xid = $prm['id']; $form_code = $prm['form_code']; $data_riwayat = $prm['data_riwayat']; $sql = "SELECT * FROM form_riwayat_pasien WHERE FormRiwayatPasienCode = ? AND FormRiwayatPasienUUID = ? AND FormRiwayatPasienIsActive = 'Y'"; $query = $this->db_onedev->query($sql, array($form_code, $xid)); if(!$query){ $this->sys_error_db("form_riwayat_pasien error get exist"); exit; } $exist_form_riwayat = $query->result_array(); $parent_id = $exist_form_riwayat[0]['FormRiwayatPasienID']; $this->db_onedev->trans_begin(); foreach($data_riwayat as $key => $item){ $riwayat = json_encode($item, JSON_UNESCAPED_SLASHES); $sql = "UPDATE form_riwayat_pasien_template JOIN fisik_template ON FormRiwayatPasienTemplateFisikTemplateID = FisikTemplateID AND FisikTemplateIsActive = 'Y' AND FisikTemplateType = 'Riwayat' AND FisikTemplateTitle = ? SET FormRiwayatPasienTemplateDetails = ?, FormRiwayatPasienTemplateLastUpdated = NOW(), FormRiwayatPasienTemplateLastUpdatedUserID = 45312 WHERE FormRiwayatPasienTemplateFormRiwayatPasienID = ? AND FormRiwayatPasienTemplateIsActive = 'Y' "; $rst = $this->db_onedev->query($sql, array( $item['title'], $riwayat, $parent_id )); if(!$rst){ echo $this->db_onedev->last_query(); $this->db_onedev->trans_rollback(); $this->sys_error_db("form_riwayat_pasien error save"); exit; } } $this->db_onedev->trans_commit(); $this->sys_ok("Data berhasil disimpan"); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }