db_onedev = $this->load->database("onedev", true); // $this->load->library("SsPriceMou"); } public function getsetup() { try { // if (!$this->isLogin) { // $this->sys_error("Invalid Token"); // exit; // } $sql = "SELECT * FROM mgm_mcu WHERE Mgm_McuIsActive = 'Y'"; $qry = $this->db_onedev->query($sql, []); $last_qry = $this->db_onedev->last_query(); if (!$qry) { $message = $this->db_onedev->error(); $message['last_qry'] = $last_qry; $this->sys_error($message); exit; } $data = $qry->result_array(); $result = [ "records" => $data, ]; $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function search() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = '%' . $prm['search'] . '%'; $page = $prm["page"]; $startDate = $prm["startDate"]; $endDate = $prm["endDate"]; $setupID = $prm["setupID"]; $ROW_PER_PAGE = 20; $start_offset = 0; // print_r($prm); if (isset($prm["page"])) { if ( is_numeric($prm["page"]) && $prm["page"] > 0 ) { $start_offset = ($page - 1) * $ROW_PER_PAGE; } } $sql = "SELECT COUNT(T_OrderHeaderID) AS total FROM t_orderheader JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN corporate ON T_OrderHeaderCorporateID = CorporateID JOIN m_branch ON T_OrderHeaderM_BranchID = M_BranchID LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID WHERE (DATE_FORMAT(T_OrderHeaderDate, '%Y-%m-%d') BETWEEN ? AND ?) AND (M_PatientName LIKE ? OR T_OrderHeaderLabNumber LIKE ?) AND T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y' ORDER BY T_OrderHeaderLabNumber "; $query = $this->db_onedev->query($sql, [$startDate, $endDate, $search, $search, $setupID]); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } $totalPage = $query->row_array()['total']; $sql = "SELECT T_OrderHeaderID AS orderID, IFNULL(Mcu_ResumeStatus, 'NEW') as status, T_OrderHeaderM_BranchID AS branchID, DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS orderDate, T_OrderHeaderLabNumber AS labNumber, T_OrderHeaderM_PatientID AS patientID, T_OrderHeaderCorporateID AS corporateID, T_OrderHeaderMgm_McuID AS setupID, UPPER(T_OrderHeaderM_PatientAge) AS patientAge, M_PatientNoReg AS patientReg, M_PatientName AS patientName, UPPER(CONCAT(IF(ISNULL(M_TitleName),'',CONCAT(M_TitleName,'.')), ' ', IFNULL(M_PatientPrefix,''), ' ', M_PatientName, ' ', IFNULL(M_PatientSuffix,''))) AS patientFullname, CASE WHEN LOWER(M_PatientGender) = 'male' THEN 'LAKI-LAKI' WHEN LOWER(M_PatientGender) = 'female' THEN 'PEREMPUAN' END patientGender, M_PatientPhoto AS patientFoto, M_PatientPhotoThumb AS patientFotoThumb, CorporateCode AS corporateCode, UPPER(CorporateName) AS corporateName, M_BranchCode AS branchID, M_BranchName AS branchName, IFNULL(T_SamplingAdditionalFisikBBTBID,0) T_SamplingAdditionalFisikBBTBID, T_SamplingAdditionalFisikBBTBValueBB, T_SamplingAdditionalFisikBBTBValueTB, T_SamplingAdditionalFisikBBTBValueClassification, IFNULL(T_SamplingAdditionalFisikBBTBStandart,'asia_pacific') T_SamplingAdditionalFisikBBTBStandart, T_SamplingAdditionalFisikBBTBBodyFat, IFNULL(T_SamplingAdditionalFisikBWID,0) T_SamplingAdditionalFisikBWID, T_SamplingAdditionalFisikBWPWValue, T_SamplingAdditionalFisikBWPWVAngka, T_SamplingAdditionalFisikBWPWKeterangan, IFNULL(T_SamplingAdditionalFisikVisusID,0) T_SamplingAdditionalFisikVisusID, T_SamplingAdditionalFisikVisusTKODV, T_SamplingAdditionalFisikVisusTKOSV, T_SamplingAdditionalFisikVisusDKODV, T_SamplingAdditionalFisikVisusDKOSV, T_SamplingAdditionalFisikVisusODSPH, T_SamplingAdditionalFisikVisusODCYL, T_SamplingAdditionalFisikVisusODX, T_SamplingAdditionalFisikVisusOSSPH, T_SamplingAdditionalFisikVisusOSCYL, T_SamplingAdditionalFisikVisusOSX, T_SamplingAdditionalFisikVisusADD, T_SamplingAdditionalFisikVisusKananKesimpulan, T_SamplingAdditionalFisikVisusKiriKesimpulan FROM t_orderheader JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN corporate ON T_OrderHeaderCorporateID = CorporateID JOIN m_branch ON T_OrderHeaderM_BranchID = M_BranchID LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID LEFT JOIN mcu_resume ON T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID AND Mcu_ResumeIsActive = 'Y' LEFT JOIN t_samplingso_additional_fisik_bbtb ON T_SamplingAdditionalFisikBBTBT_OrderHeaderID = T_OrderHeaderID AND T_SamplingAdditionalFisikBBTBIsActive = 'Y' LEFT JOIN t_samplingso_additional_fisik_bw ON T_SamplingAdditionalFisikBWT_OrderHeaderID = T_OrderHeaderID LEFT JOIN t_samplingso_additional_fisik_visus ON T_SamplingAdditionalFisikVisusT_OrderHeaderID = T_OrderHeaderID WHERE (DATE_FORMAT(T_OrderHeaderDate, '%Y-%m-%d') BETWEEN ? AND ?) AND (M_PatientName LIKE ? OR T_OrderHeaderLabNumber LIKE ?) AND T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y' ORDER BY T_OrderHeaderLabNumber LIMIT ? OFFSET ? "; $query = $this->db_onedev->query($sql, [$startDate, $endDate, $search, $search, $setupID, $ROW_PER_PAGE, $start_offset]); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } // echo $this->db_onedev->last_query(); $result = [ "total" => ceil($totalPage / $ROW_PER_PAGE), "records" => $query->result_array() ]; $this->sys_ok($result); } function getdetail() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $orderid = $prm['orderid']; $sql = "SELECT T_SamplingAdditionalFisikBBTBID, T_SamplingAdditionalFisikBBTBValueBB, T_SamplingAdditionalFisikBBTBValueTB, T_SamplingAdditionalFisikBBTBValueClassification, T_SamplingAdditionalFisikBBTBStandart, T_SamplingAdditionalFisikBBTBBodyFat, T_SamplingAdditionalFisikBWID, T_SamplingAdditionalFisikBWPWValue, T_SamplingAdditionalFisikBWPWVAngka, T_SamplingAdditionalFisikBWPWKeterangan, T_SamplingAdditionalFisikVisusID, T_SamplingAdditionalFisikVisusTKODV, T_SamplingAdditionalFisikVisusTKOSV, T_SamplingAdditionalFisikVisusDKODV, T_SamplingAdditionalFisikVisusDKOSV, T_SamplingAdditionalFisikVisusODSPH, T_SamplingAdditionalFisikVisusODCYL, T_SamplingAdditionalFisikVisusODX, T_SamplingAdditionalFisikVisusOSSPH, T_SamplingAdditionalFisikVisusOSCYL, T_SamplingAdditionalFisikVisusOSX, T_SamplingAdditionalFisikVisusADD, T_SamplingAdditionalFisikVisusKananKesimpulan, T_SamplingAdditionalFisikVisusKiriKesimpulan FROM t_orderheader LEFT JOIN t_samplingso_additional_fisik_bbtb ON T_SamplingAdditionalFisikBBTBT_OrderHeaderID = T_OrderHeaderID AND T_SamplingAdditionalFisikBBTBIsActive = 'Y' LEFT JOIN t_samplingso_additional_fisik_bw ON T_SamplingAdditionalFisikBWT_OrderHeaderID = T_OrderHeaderID LEFT JOIN t_samplingso_additional_fisik_visus ON T_SamplingAdditionalFisikVisusT_OrderHeaderID = T_OrderHeaderID WHERE T_OrderHeaderID = {$orderid} "; $query = $this->db_onedev->query($sql, [$orderid]); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } // echo $this->db_onedev->last_query(); $getHeader = $query->result_array(); $dataHeader = array(); if (count($getHeader) == 0) { $dataHeader = array( "resumeID" => 0, "resumeDoctorID" => 0, "orderID" => $orderid, "status" => 'NEW', "verivication" => 'N', "validation" => 'N', "kesimpulan" => '', "rekomendasi" => '', "saran" => '', "doctorName" => "" ); } else { $dataHeader = $getHeader[0]; } $sql = "SELECT T_OrderDetailID AS detailOrderID, Group_ResultName AS groupResultName, So_ResultEntryID AS resultID, So_ResultEntryValidation1 AS resultValidation, So_ResultEntryStatus AS resultStatus, T_OrderDetailT_TestID AS testID, T_TestName AS testName, IFNULL(Mcu_ResumeDetailsID, 0) AS resumeDetailsID, IFNULL(Mcu_ResumeID, 0) AS resumeID, Mcu_ResumeKesimpulan AS resumeKesimpulan, Mcu_ResumeRekomendasi AS resumeRekomendasi, Mcu_ResumeSaran AS resumeSaran, Mcu_ResumeDetailsResult resumeDetailResult, So_ResultEntryDetailResult AS resumeEntryResult, Group_ResultResumeMcu AS category, CASE WHEN Group_ResultResumeMcu = 'NONLAB' THEN CASE WHEN Mcu_ResumeSaran IS NOT NULL AND TRIM(Mcu_ResumeSaran) <> '' THEN Mcu_ResumeSaran WHEN Mcu_ResumeSaran IS NULL OR TRIM(Mcu_ResumeSaran) <> '' THEN fn_getadvicenonlab(So_ResultEntryID) ELSE Mcu_ResumeSaran END WHEN Group_ResultResumeMcu = 'FISIK' THEN CASE WHEN Mcu_ResumeSaran IS NOT NULL AND TRIM(Mcu_ResumeSaran) <> '' THEN Mcu_ResumeSaran WHEN Mcu_ResumeSaran IS NULL OR TRIM(Mcu_ResumeSaran) <> '' THEN fn_getadvicefisik(So_ResultEntryID) ELSE Mcu_ResumeSaran END ELSE Mcu_ResumeSaran END AS saranso, fn_countabnormal(So_ResultEntryID) AS isNormal, TRIM(CONCAT(M_DoctorPrefix,' ',M_DoctorPrefix2, ' ', M_DoctorName, ' ',M_DoctorSuffix,' ', M_DoctorSuffix2, ' ')) doctorName, Mcu_ResumeM_DoctorID AS doctorID, IFNULL(Mcu_ResumeStatus,'NEW') AS status, CASE WHEN Mcu_ResumeDetailsResult IS NULL OR TRIM(Mcu_ResumeDetailsResult) = '' THEN So_ResultEntryDetailResult WHEN Mcu_ResumeDetailsResult IS NOT NULL OR TRIM(Mcu_ResumeDetailsResult) <> '' THEN Mcu_ResumeDetailsResult END AS result FROM t_orderdetail JOIN so_resultentry ON T_OrderDetailT_OrderHeaderID = So_ResultEntryT_OrderHeaderID AND T_OrderDetailID = So_ResultEntryT_OrderDetailID AND So_ResultEntryIsActive = 'Y' AND So_ResultEntryValidation1 = 'Y' JOIN group_resultdetail ON T_OrderDetailT_TestID = Group_ResultDetailT_TestID AND Group_ResultDetailIsActive ='Y' JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND Group_ResultResumeMcu IN ('NONLAB', 'FISIK') AND Group_ResultIsActive ='Y' JOIN t_test ON T_OrderDetailT_TestID= T_TestID AND T_TestIsActive = 'Y' LEFT JOIN nonlab_template_mcu ON T_TestNat_TestID = NonlabTemplateMcuT_TestID AND NonlabTemplateMcuIsActive = 'Y' LEFT JOIN so_resultentrydetail ON So_ResultEntryID = So_ResultEntryDetailSo_ResultEntryID AND NonlabTemplateMcuNonlabTemplateDetailID = So_ResultEntryDetailNonlab_TemplateDetailID AND So_ResultEntryDetailIsActive = 'Y' AND T_OrderDetailIsActive = 'Y' LEFT JOIN mcu_resume ON T_OrderDetailT_OrderHeaderID = Mcu_ResumeT_OrderHeaderID LEFT JOIN mcu_resumedetails ON T_OrderDetailID = Mcu_ResumeDetailsT_OrderDetailID AND Mcu_ResumeDetailsIsActive = 'Y' AND Mcu_ResumeID = Mcu_ResumeDetailsMcu_ResumeID LEFT JOIN m_doctor ON Mcu_ResumeM_DoctorID = M_DoctorID AND M_DoctorIsActive = 'Y' LEFT JOIN so_resultentry_category_result ON So_ResultEntryCategoryResultSo_ResultEntryID = So_ResultEntryID AND So_ResultEntryCategoryResultIsActive = 'Y' WHERE T_OrderDetailT_OrderHeaderID = ? GROUP BY T_OrderDetailT_TestID ORDER BY category;"; $query = $this->db_onedev->query($sql, [$orderid]); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } // echo $this->db_onedev->last_query(); $data = $query->result_array(); $this->load->library("Kesimpulanfisik"); //getlab // { // "detailOrderID": "1632088", // "groupResultName": "Pemeriksaan Fisik", // "resultID": "97", // "resultValidation": "Y", // "resultStatus": "NEW", // "testID": "2562", // "testName": "Pemeriksaan Fisik", // "resumeDetailsID": "3", // "resumeID": "2", // "resumeKesimpulan": "Pada saat ini didapatkan kelainan berupa :
Takhikardi ( 120 x/menit ), Laju pernafasan ( 15 x/menit ), Tekanan Darah 120/80 mmHg ( Prehipertensi ), Suhu Febri, Overweight ( BMI : 24.09 )
Hernia : Umbilikus (D), Inguinal (D, S) edit", // "resumeRekomendasi": null, // "resumeSaran": null, // "resumeDetailResult": "Pada saat ini didapatkan kelainan berupa :
Takhikardi ( 120 x/menit ), Laju pernafasan ( 15 x/menit ), Tekanan Darah 120/80 mmHg ( Prehipertensi ), Suhu Febri, Overweight ( BMI : 24.09 )
Hernia : Umbilikus (D), Inguinal (D, S)", // "resumeEntryResult": null, // "category": "FISIK", // "isNormal": 1, // "doctorName": null, // "doctorID": "0", // "status": "NEW", // "result": "Pada saat ini didapatkan kelainan berupa :
Takhikardi ( 120 x/menit ), Laju pernafasan ( 15 x/menit ), Tekanan Darah 120/80 mmHg ( Prehipertensi ), Suhu Febri, Overweight ( BMI : 24.09 )
Hernia : Umbilikus (D), Inguinal (D, S)" // } $lab = $this->getlab($orderid, 'N'); $labArr = []; for ($i = 0; $i < count($lab); $i++) { $isNormal = 0; if ($lab[$i]['resultIsNormal'] == "N") { $isNormal = 1; } $data[] = [ "detailOrderID" => $lab[$i]['orderDetailID'], "groupResultName" => $lab[$i]['groupName'], "resultID" => $lab[$i]['resultID'], "resultValidation" => $lab[$i]['resultValidation'], "resultStatus" => $lab[$i]['resultStatus'], "testID" => $lab[$i]['testID'], "subGroupID" => $lab[$i]['subGroupID'], "testName" => $lab[$i]['groupName'], "resumeDetailsID" => $lab[$i]['resumeDetailsID'], "resumeID" => $lab[$i]['resumeID'], "resumeKesimpulan" => $lab[$i]['resumeKesimpulan'], "resumeRekomendasi" => $lab[$i]['resumeRekomendasi'], "resumeSaran" => $lab[$i]['saran'], "saranso" => $lab[$i]['saran'], "resumeDetailResult" => $lab[$i]['resumeDetailResult'], "resumeEntryResult" => $lab[$i]['kelainan'], "category" => "LAB", "isNormal" => $isNormal, "doctorName" => '', "doctorID" => '', "status" => $lab[$i]['resultStatus'], "result" => $lab[$i]['kelainan'] ]; } // $kesimpulanFisik = // $kesimpulanFisik = $this->kesimpulanfisik->kesimpulan('97'); for ($i = 0; $i < count($data); $i++) { if ($data[$i]['category'] == 'FISIK') { $kesimpulanFisik = $this->kesimpulanfisik->kesimpulan($data[$i]['resultID']); $data[$i]['result'] = $kesimpulanFisik; if ($kesimpulanFisik != 'Tidak ditemukan kelainan.') { $data[$i]['isNormal'] = 1; } else { $data[$i]['isNormal'] = 0; } } } $kesimpulanarr = []; $saranArr = []; for ($i = 0; $i < count($data); $i++) { if (trim($data[0]['resumeKesimpulan']) == '' || $data[0]['resumeKesimpulan'] == null) { if (intval($data[$i]['isNormal']) > 0) { if (trim($data[$i]['result']) != '') { # code... $kesimpulanarr[] = $data[$i]['result']; } } } if (trim($data[0]['resumeSaran']) == '' || $data[0]['resumeSaran'] == null) { if (intval($data[$i]['isNormal']) > 0) { if (trim($data[$i]['saranso']) != '') { $explodeSaran = explode("@", $data[$i]['saranso']); if (count($explodeSaran) > 0) { array_push($saranArr, ...$explodeSaran); } } } } } if (count($kesimpulanarr) > 0) { $kesimpulan = implode(", ", $kesimpulanarr); $saran = (implode(", ", array_unique($saranArr))); $dataHeader['kesimpulan'] = $kesimpulan; $dataHeader['saran'] = $saran; for ($i = 0; $i < count($data); $i++) { $data[$i]['resumeKesimpulan'] = $kesimpulan; $data[$i]['resumeSaran'] = $saran; } } // if (trim($kesimpulan) != '') { // if ($kesimpulanFisik != 'Tidak ditemukan kelainan.') { // $kesimpulan = $kesimpulan . ", \n" . $kesimpulanFisik; // } // } else { // if ($kesimpulanFisik != 'Tidak ditemukan kelainan.') { // $kesimpulan = $kesimpulanFisik; // } // } $dataHeader['detail'] = $data; $result = [ "header" => $dataHeader, "records" => $data, // 'kesimpulan' => $kesimpulanFisik ]; $this->sys_ok($result); } function getdoctor() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = $prm['search']; $query = " SELECT M_DoctorID, M_DoctorID doctorID, M_DoctorPrefix, M_DoctorPrefix2, M_DoctorName, M_DoctorSuffix, M_DoctorSuffix2, M_DoctorCode , CONCAT(M_DoctorPrefix,' ',M_DoctorPrefix2, ' ', M_DoctorName, ' ',M_DoctorSuffix,' ', M_DoctorSuffix2, ' ') doctorName FROM m_doctor WHERE M_DoctorIsActive = 'Y' AND CONCAT(M_DoctorPrefix,' ',M_DoctorPrefix2, ' ', M_DoctorName, ' ',M_DoctorSuffix,' ', M_DoctorSuffix2, ' ') LIKE '%$search%' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows), "records" => $rows, "query" => $this->db_onedev->last_query() ); $this->sys_ok($result); exit; } function save() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; if ($prm['T_SamplingAdditionalFisikBBTBID'] == 0) { $sql = "INSERT INTO t_samplingso_additional_fisik_bbtb (T_SamplingAdditionalFisikBBTBT_OrderHeaderID, T_SamplingAdditionalFisikBBTBValueBB, T_SamplingAdditionalFisikBBTBValueTB, T_SamplingAdditionalFisikBBTBValueClassification, T_SamplingAdditionalFisikBBTBStandart, T_SamplingAdditionalFisikBBTBBodyFat, T_SamplingAdditionalFisikBBTBCreated, T_SamplingAdditionalFisikBBTBCreatedUserID) VALUES('{$prm['orderID']}', '{$prm['T_SamplingAdditionalFisikBBTBValueBB']}', '{$prm['T_SamplingAdditionalFisikBBTBValueTB']}', '{$prm['T_SamplingAdditionalFisikBBTBValueClassification']}', '{$prm['T_SamplingAdditionalFisikBBTBStandart']}', '{$prm['T_SamplingAdditionalFisikBBTBBodyFat']}', now(), '{$userid}')"; $query = $this->db_onedev->query($sql); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } $T_SamplingAdditionalFisikBBTBID = $this->db_onedev->insert_id(); } else { $sql = "UPDATE t_samplingso_additional_fisik_bbtb SET T_SamplingAdditionalFisikBBTBValueBB = '{$prm['T_SamplingAdditionalFisikBBTBValueBB']}', T_SamplingAdditionalFisikBBTBValueTB = '{$prm['T_SamplingAdditionalFisikBBTBValueTB']}', T_SamplingAdditionalFisikBBTBValueClassification = '{$prm['T_SamplingAdditionalFisikBBTBValueClassification']}', T_SamplingAdditionalFisikBBTBStandart = '{$prm['T_SamplingAdditionalFisikBBTBStandart']}', T_SamplingAdditionalFisikBBTBBodyFat = '{$prm['T_SamplingAdditionalFisikBBTBBodyFat']}', T_SamplingAdditionalFisikBBTBLastUpdated = now(), T_SamplingAdditionalFisikBBTBLastUpdatedUserID = '{$userid}' WHERE T_SamplingAdditionalFisikBBTBID = '{$prm['T_SamplingAdditionalFisikBBTBID']}'"; $query = $this->db_onedev->query($sql); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } } if ($prm['T_SamplingAdditionalFisikBWID'] == 0) { $sql = "INSERT INTO t_samplingso_additional_fisik_bw (T_SamplingAdditionalFisikBWT_OrderHeaderID, T_SamplingAdditionalFisikBWPWValue, T_SamplingAdditionalFisikBWPWVAngka, T_SamplingAdditionalFisikBWPWKeterangan, T_SamplingAdditionalFisikBWCreated, T_SamplingAdditionalFisikBWCreatedUserID) VALUES('{$prm['orderID']}', '{$prm['T_SamplingAdditionalFisikBWPWValue']}', '{$prm['T_SamplingAdditionalFisikBWPWVAngka']}', '{$prm['T_SamplingAdditionalFisikBWPWKeterangan']}', now(), '{$userid}')"; $query = $this->db_onedev->query($sql); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } $T_SamplingAdditionalFisikBWID = $this->db_onedev->insert_id(); } else { $sql = "UPDATE t_samplingso_additional_fisik_bw SET T_SamplingAdditionalFisikBWPWValue = '{$prm['T_SamplingAdditionalFisikBWPWValue']}', T_SamplingAdditionalFisikBWPWVAngka = '{$prm['T_SamplingAdditionalFisikBWPWVAngka']}', T_SamplingAdditionalFisikBWPWKeterangan = '{$prm['T_SamplingAdditionalFisikBWPWKeterangan']}', T_SamplingAdditionalFisikBWLastUpdated = now(), T_SamplingAdditionalFisikBWLastUpdatedUserID = '{$userid}' WHERE T_SamplingAdditionalFisikBWID = '{$prm['T_SamplingAdditionalFisikBWID']}'"; $query = $this->db_onedev->query($sql); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } } if ($prm['T_SamplingAdditionalFisikVisusID'] == 0) { $sql = "INSERT INTO t_samplingso_additional_fisik_visus (T_SamplingAdditionalFisikVisusT_OrderHeaderID, T_SamplingAdditionalFisikVisusTKODV, T_SamplingAdditionalFisikVisusTKOSV, T_SamplingAdditionalFisikVisusDKODV, T_SamplingAdditionalFisikVisusDKOSV, T_SamplingAdditionalFisikVisusODSPH, T_SamplingAdditionalFisikVisusODCYL, T_SamplingAdditionalFisikVisusODX, T_SamplingAdditionalFisikVisusOSSPH, T_SamplingAdditionalFisikVisusOSCYL, T_SamplingAdditionalFisikVisusOSX, T_SamplingAdditionalFisikVisusADD, T_SamplingAdditionalFisikVisusKananKesimpulan, T_SamplingAdditionalFisikVisusKiriKesimpulan, T_SamplingAdditionalFisikVisusCreated, T_SamplingAdditionalFisikVisusCreatedUserID) VALUES('{$prm['orderID']}', '{$prm['T_SamplingAdditionalFisikVisusTKODV']}', '{$prm['T_SamplingAdditionalFisikVisusTKOSV']}', '{$prm['T_SamplingAdditionalFisikVisusDKODV']}', '{$prm['T_SamplingAdditionalFisikVisusDKOSV']}', '{$prm['T_SamplingAdditionalFisikVisusODSPH']}', '{$prm['T_SamplingAdditionalFisikVisusODCYL']}', '{$prm['T_SamplingAdditionalFisikVisusODX']}', '{$prm['T_SamplingAdditionalFisikVisusOSSPH']}', '{$prm['T_SamplingAdditionalFisikVisusOSCYL']}', '{$prm['T_SamplingAdditionalFisikVisusOSX']}', '{$prm['T_SamplingAdditionalFisikVisusADD']}', '{$prm['T_SamplingAdditionalFisikVisusKananKesimpulan']}', '{$prm['T_SamplingAdditionalFisikVisusKiriKesimpulan']}', now(), '{$userid}')"; $query = $this->db_onedev->query($sql); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } $T_SamplingAdditionalFisikVisusID = $this->db_onedev->insert_id(); } else { $sql = "UPDATE t_samplingso_additional_fisik_visus SET T_SamplingAdditionalFisikVisusTKODV = '{$prm['T_SamplingAdditionalFisikVisusTKODV']}', T_SamplingAdditionalFisikVisusTKOSV = '{$prm['T_SamplingAdditionalFisikVisusTKOSV']}', T_SamplingAdditionalFisikVisusDKODV = '{$prm['T_SamplingAdditionalFisikVisusDKODV']}', T_SamplingAdditionalFisikVisusDKOSV = '{$prm['T_SamplingAdditionalFisikVisusDKOSV']}', T_SamplingAdditionalFisikVisusODSPH = '{$prm['T_SamplingAdditionalFisikVisusODSPH']}', T_SamplingAdditionalFisikVisusODCYL = '{$prm['T_SamplingAdditionalFisikVisusODCYL']}', T_SamplingAdditionalFisikVisusODX = '{$prm['T_SamplingAdditionalFisikVisusODX']}', T_SamplingAdditionalFisikVisusOSSPH = '{$prm['T_SamplingAdditionalFisikVisusOSSPH']}', T_SamplingAdditionalFisikVisusADD = '{$prm['T_SamplingAdditionalFisikVisusADD']}', T_SamplingAdditionalFisikVisusKananKesimpulan = '{$prm['T_SamplingAdditionalFisikVisusKananKesimpulan']}', T_SamplingAdditionalFisikVisusKiriKesimpulan = '{$prm['T_SamplingAdditionalFisikVisusKiriKesimpulan']}', T_SamplingAdditionalFisikVisusLastUpdated = now(), T_SamplingAdditionalFisikVisusLastUpdatedUserID = '{$userid}' WHERE T_SamplingAdditionalFisikVisusID = '{$prm['T_SamplingAdditionalFisikVisusID']}'"; $query = $this->db_onedev->query($sql); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } } $this->sys_ok('ok'); } function getlab($id, $isApi) { $prm = $this->sys_input; $this->generate_kelainan_lab($id); // Mcu_KelainanName AS kelainanName, // Mcu_KelainanGroupName AS kelainanGroupName, // LEFT JOIN t_kelainan_lab // ON T_OrderDetailT_OrderHeaderID = T_KelainanLabT_OrderHeaderID // AND T_OrderDetailID = T_KelainanLabT_OrderDetailID // AND T_TestNat_TestID = T_KelainanLabNat_TestID // AND T_KelainanLabIsActive = 'Y' // LEFT JOIN mcu_summarylab // ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID // AND T_TestNat_TestID = Mcu_SummaryLabNat_TestID // AND Mcu_SummaryLabIsActive = 'Y' // LEFT join mcu_kelainan on Mcu_SummaryLabMcu_KelainanID = Mcu_KelainanID // AND Mcu_KelainanIsActive = 'Y' // LEFT join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID // AND Mcu_KelainanGroupIsActive = 'Y' $sql = "SELECT T_OrderDetailID, '' AS smLabID, '' AS natTestID, '' AS value, '' AS kelainanID, '' AS smLabType, '' AS isNormal, '' AS methode, '' AS methodeID, '' AS kelainanSaran, T_OrderDetailT_OrderHeaderID AS orderID, T_OrderDetailID AS orderDetailID, T_OrderDetailT_TestID AS testID, T_OrderDetailT_TestCode AS testCode, T_OrderDetailT_TestSasCode AS testSasCode, T_OrderDetailT_TestName AS testName, T_OrderDetailResult AS result, Nat_SubSubGroupID AS subGroupID, T_OrderDetailMinValue AS minValues, T_OrderDetailMaxValue AS maxValues, Nat_SubSubGroupName AS groupName, T_TestNat_TestID AS natTestID, T_TestIsQuantitative as isKuantitatif, CASE WHEN T_OrderDetailResultFlag IS NULL THEN 'Y' WHEN T_OrderDetailResultFlag = '' THEN 'Y' ELSE 'N' END testNormal, T_OrderDetailResultFlag, null AS resultID, 'N' AS resultValidation, 'NEW' AS resultStatus, Mcu_ResumeDetailsID AS resumeDetailsID, CASE WHEN Mcu_ResumeDetailsMcu_ResumeID IS NULL THEN 'N' WHEN Mcu_ResumeDetailsMcu_ResumeID IS NOT NULL THEN 'Y' END as hasResult, Mcu_ResumeID AS resumeID , Mcu_ResumeKesimpulan AS resumeKesimpulan , Mcu_ResumeRekomendasi AS resumeRekomendasi , Mcu_ResumeSaran AS resumeSaran , Mcu_ResumeDetailsResult AS resumeDetailResult , Mcu_ResumeDetailsResult AS resumeEntryResult FROM t_orderdetail JOIN group_resultdetail ON T_OrderDetailT_TestID = Group_ResultDetailT_TestID AND Group_ResultDetailIsActive ='Y' JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND Group_ResultResumeMcu IN ('LAB') JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN nat_subsubgroup ON T_TestNat_SubSubGroupID=Nat_SubSubGroupID LEFT JOIN mcu_resume ON T_OrderDetailT_OrderHeaderID = Mcu_ResumeT_OrderHeaderID AND Mcu_ResumeIsActive = 'Y' LEFT JOIN mcu_resumedetails -- ON T_OrderDetailID = Mcu_ResumeDetailsT_OrderDetailID ON Mcu_ResumeDetailsMcu_ResumeID = Mcu_ResumeID AND T_TestNat_SubSubGroupID = Mcu_ResumeDetailsNat_SubSubGroupID AND Mcu_ResumeDetailsIsActive = 'Y' WHERE T_OrderDetailT_OrderHeaderID = {$id} AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailT_TestIsResult = 'Y'"; // echo $sql; $query = $this->db_onedev->query($sql, []); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } $test = $query->result_array(); for ($i = 0; $i < count($test); $i++) { $e = $test[$i]; $kelainan = ''; $saran = ''; $rstNormal = 'Y'; if ($e['hasResult'] == 'Y') { $kelainan = $e['resumeDetailResult']; if (trim($e['resumeDetailResult']) !== 'Dalam batas normal') { $rstNormal = 'N'; } } else { if ($e['result'] !== null) { # code... if ($e['testNormal'] == 'N' && is_numeric($e['result'])) { if (floatval($e['result']) >= floatval($e['maxValues'])) { $kelainan = $e['testName'] . " meningkat ({$e['result']})"; } if (floatval($e['result']) < floatval($e['minValues'])) { $kelainan = $e['testName'] . " menurun ({$e['result']})"; } $rstNormal = 'N'; } if ($e['testNormal'] == 'N' && !is_numeric($e['result'])) { $kelainan = $e['testName'] . " ({$e['result']})"; $rstNormal = 'N'; } if ($e['testNormal'] == 'Y') { $kelainan = "Dalam batas normal"; $rstNormal = 'Y'; } } // if ($e['smLabID'] != null) { // // print_r("masuk else"); // if ($e['testNormal'] == 'Y') { // if ($e['smLabType'] == '<' || $e['smLabType'] == '<=') { // $ket = 'menurun'; // $value_comparison = $e['minValues']; // } // if ($e['smLabType'] == '>' || $e['smLabType'] == '>=') { // $ket = 'meningkat'; // $value_comparison = $e['maxValues']; // } // //echo "Y"; // // if ($e['methode'] == 'N' && $this->dynamic_comparison($e['value'], $e['smLabType'], $value_comparison)) { // if ($e['smLabType'] == '<' || $e['smLabType'] == '<=') { // $ket = 'menurun'; // } // if ($e['smLabType'] == '>' || $e['smLabType'] == '>=') { // $ket = 'meningkat'; // } // $kelainan = ""; // // $kelainan = $e['testName'] . " " . $ket . "({$e['result']})"; // if ($e['kelainanSaran'] != null) { // # code... // $saran = $e['kelainanSaran']; // } // $rstNormal = 'Y'; // // } // } else { // $value_comparison = $e['value']; // if ($e['smLabType'] == '!=' || $e['smLabType'] == '==') { // // if ($this->dynamic_comparison($e['value'], $e['smLabType'], $value_comparison)) { // //echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", "; // //langsung hasil // // $kelainan = $e; // $kelainan = $e['testName'] . " " . "{$e['result']}"; // if ($e['kelainanSaran'] != null) { // # code... // $saran = $e['kelainanSaran']; // } // $rstNormal = 'N'; // // } // } else { // // if (is_numeric($e['value']) && $this->dynamic_comparison($e['value'], $e['smLabType'], $value_comparison)) { // if ($e['smLabType'] == '<' || $e['smLabType'] == '<=') { // $ket = 'menurun'; // } // if ($e['smLabType'] == '>' || $e['smLabType'] == '>=') { // $ket = 'meningkat'; // } // // $kelainan = $e; // $kelainan = $e['testName'] . " " . $ket . "({$e['result']})"; // if ($e['kelainanSaran'] != null) { // # code... // $saran = $e['kelainanSaran']; // } // $rstNormal = 'N'; // // } // } // } // } // $sql = "SELECT // Mcu_SummaryLabID AS smLabID, // Mcu_SummaryLabNat_TestID AS natTestID, // Mcu_SummaryLabValue AS value, // Mcu_summaryLabMcu_KelainanID AS kelainanID, // Mcu_SummaryLabType AS smLabType, // Mcu_SummaryLabIsNormalValue AS isNormal, // Mcu_SummaryLabWithMethode AS methode, // Mcu_SummaryLabNat_MethodeID AS methodeID, // Mcu_KelainanName AS kelainanName, // Mcu_KelainanGroupName AS kelainanGroupName, // `fn_getadvicebykelainanid`(Mcu_summaryLabMcu_KelainanID) AS kelainanSaran // FROM mcu_summarylab // join mcu_kelainan on Mcu_SummaryLabMcu_KelainanID = Mcu_KelainanID // join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID // WHERE Mcu_SummaryLabNat_TestID = '{$e['natTestID']}' // AND Mcu_SummaryLabIsActive = 'Y'"; // $query = $this->db_onedev->query($sql, []); // // echo $this->db_onedev->last_query(); // // exit; // if (!$query) { // $message = $this->db_onedev->error(); // $message['qry'] = $this->db_onedev->last_query(); // $this->sys_error($message); // exit; // } // $normalValue = $query->result_array(); // // echo $normalValue; // // exit; // $test[$i]['normalValue'] = $normalValue; // // $test[$i]['test'] = $normalValue; // for ($k = 0; $k < count($normalValue); $k++) { // $ket = ''; // $nv = $normalValue[$k]; // // if ($e['value'] != null && trim($e['value']) != '') { // if ($nv['isNormal'] == 'Y') { // if ($nv['smLabType'] == '<' || $nv['smLabType'] == '<=') { // $ket = 'menurun'; // $value_comparison = $e['minValues']; // } // if ($nv['smLabType'] == '>' || $nv['smLabType'] == '>=') { // $ket = 'meningkat'; // $value_comparison = $e['maxValues']; // } // //echo "Y"; // if ($nv['methode'] == 'N' && $this->dynamic_comparison($e['value'], $nv['smLabType'], $value_comparison)) { // if ($nv['smLabType'] == '<' || $nv['smLabType'] == '<=') { // $ket = 'menurun'; // } // if ($nv['smLabType'] == '>' || $nv['smLabType'] == '>=') { // $ket = 'meningkat'; // } // $kelainan = $e['testName'] . " " . $ket . "({$e['result']})"; // $saran = $nv['kelainanSaran']; // $rstNormal = 'N'; // } // } else { // $value_comparison = $nv['value']; // if ($nv['smLabType'] == '!=' || $nv['smLabType'] == '==') { // if ($this->dynamic_comparison($e['value'], $nv['smLabType'], $value_comparison)) { // //echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", "; // //langsung hasil // // $kelainan = $nv; // $kelainan = $e['testName'] . " " . "{$e['result']}"; // $saran = $nv['kelainanSaran']; // $rstNormal = 'N'; // } // } else { // if (is_numeric($e['value']) && $this->dynamic_comparison($e['value'], $nv['smLabType'], $value_comparison)) { // if ($nv['smLabType'] == '<' || $nv['smLabType'] == '<=') { // $ket = 'menurun'; // } // if ($nv['smLabType'] == '>' || $nv['smLabType'] == '>=') { // $ket = 'meningkat'; // } // // $kelainan = $nv; // $kelainan = $e['testName'] . " " . $ket . "({$e['result']})"; // $saran = $nv['kelainanSaran']; // $rstNormal = 'N'; // } // } // } // // } // } } $test[$i]['kelainan'] = $kelainan; $test[$i]['resultIsNormal'] = $rstNormal; $test[$i]['saran'] = $saran; } $newGab = []; $group = []; //penggabungan test for ($i = 0; $i < count($test); $i++) { $e = $test[$i]; if (!in_array($e['groupName'], $group)) { $group[] = $e['groupName']; if ($e['resultIsNormal'] == 'Y') { $e['kelainan'] = ''; } $newGab[] = $e; } else { for ($k = 0; $k < count($newGab); $k++) { $nv = $newGab[$k]; if ($e['groupName'] == $nv['groupName']) { if ($test[$i]['resultIsNormal'] == 'N') { # code... if (trim($newGab[$k]['kelainan']) == "") { $newGab[$k]['kelainan'] = $test[$i]['kelainan']; } else { if ($newGab[$k]['kelainan'] != $test[$i]['kelainan']) { $newGab[$k]['kelainan'] = $newGab[$k]['kelainan'] . ', ' . $test[$i]['kelainan']; } } if (trim($newGab[$k]['saran']) == "" && trim($test[$i]['saran']) != '') { $newGab[$k]['saran'] = $test[$i]['saran']; $newGab[$k]['saranArr'][] = $test[$i]['saran']; } else { if (trim($test[$i]['saran']) != '') { $newGab[$k]['saran'] = $newGab[$k]['saran'] . '@' . $test[$i]['saran']; } } if ($newGab[$k]['testIDKelainan'] == '' && !isset($newGab[$k]['testIDKelainan'])) { # code... $newGab[$k]['testIDKelainan'] = $test[$i]['testID']; } else { $newGab[$k]['testIDKelainan'] = $newGab[$k]['testIDKelainan'] . ',' . $test[$i]['testID']; } } $newGab[$k]['testID'] = $newGab[$k]['testID'] . ', ' . $test[$i]['testID']; } } } } for ($i = 0; $i < count($newGab); $i++) { $newGab[$i]['normalValue'] = ''; if (trim(str_replace(',', '', $newGab[$i]['kelainan'])) != '') { $newGab[$i]['resultIsNormal'] = 'N'; } else { $newGab[$i]['resultIsNormal'] = 'Y'; $newGab[$i]['kelainan'] = 'Dalam batas normal'; } //saran unique $expldSaran = explode('@', $newGab[$i]['saran']); $expldSaranUnique = array_unique($expldSaran); $newGab[$i]['saran'] = implode('@', $expldSaranUnique); $expldTestIdKelainan = explode('@', $newGab[$i]['testIDKelainan']); $expldTestIdKelainanUnique = array_unique($expldTestIdKelainan); $newGab[$i]['testIDKelainan'] = implode(',', $expldTestIdKelainanUnique); } if ($isApi == 'Y') { $this->sys_ok([ "test" => $test, 'gab' => $newGab ]); } else { return $newGab; } } function dynamic_comparison($varleft, $op, $varright) { switch ($op) { case "=": return $varleft == $varright; case "!=": return $varleft != $varright; case ">=": return $varleft >= $varright; case "<=": return $varleft <= $varright; case ">": return $varleft > $varright; case "<": return $varleft < $varright; default: return true; } } function generate_kelainan_lab($orderid) { $sql = "select T_OrderHeaderID,T_OrderHeaderLabNumber, T_TestName, T_OrderDetailID, T_OrderDetailResult, T_OrderDetailNat_MethodeID, T_OrderDetailNat_MethodeID, T_OrderDetailNat_MethodeName, T_OrderDetailMinValue, T_OrderDetailMaxValue, T_OrderDetailMinValueInclusive, T_OrderDetailMaxValueInclusive, Mcu_SummaryLabID, Mcu_SummaryLabValue, Mcu_SummaryLabNat_MethodeID, Mcu_SummaryLabWithMethode, Mcu_SummaryLabType, Mcu_SummaryLabIsNormalValue, Mcu_KelainanID, Mcu_KelainanName, Mcu_KelainanClasification, Nat_TestID, Nat_TestCode, mcu_kelainangroup.* from t_orderdetail join t_orderheader on T_OrderHeaderID = {$orderid} and T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y' join t_test on T_OrderDetailT_TestID = T_TestID join nat_test ON T_TestNat_TestID = Nat_TestID join mcu_summarylab on T_TestNat_TestID = Mcu_SummaryLabNat_TestID AND Mcu_SummaryLabIsActive = 'Y' join mcu_kelainan on Mcu_SummaryLabMcu_KelainanID = Mcu_KelainanID join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID"; //echo $sql; $qry = $this->db_onedev->query($sql); if (!$qry) { echo $this->db_onedev->last_query(); echo json_encode([ "status" => "ERR", "message" => "Error get order | " . $this->db_onedev->error()["message"] ]); exit; } $rows = $qry->result_array(); $results = []; foreach ($rows as $r) { $result_value = $r['T_OrderDetailResult']; $value_comparison = 0; //echo $r['Mcu_SummaryLabIsNormalValue']; $kelainan = []; $notavailable = []; if (trim($result_value) == 'NA') { $notavailable = $r; } elseif ($r['Mcu_SummaryLabIsNormalValue'] == 'Y') { if ($r['Mcu_SummaryLabType'] == '<' || $r['Mcu_SummaryLabType'] == '<=') { $value_comparison = $r['T_OrderDetailMinValue']; } if ($r['Mcu_SummaryLabType'] == '>' || $r['Mcu_SummaryLabType'] == '>=') { $value_comparison = $r['T_OrderDetailMaxValue']; } //echo "Y"; if ($r['Mcu_SummaryLabWithMethode'] == 'N' && $this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) { //echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", "; $kelainan = $r; $results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']); } } else { $value_comparison = $r['Mcu_SummaryLabValue']; if ($r['Mcu_SummaryLabType'] == '!=' || $r['Mcu_SummaryLabType'] == '==') { if ($this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) { //echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", "; $kelainan = $r; $results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']); } } else { if (is_numeric($result_value) && $this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) { //echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", "; $kelainan = $r; $results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']); } } } if (count($results) > 0) { $sql = "UPDATE t_kelainan_lab SET T_KelainanLabIsActive = 'N' WHERE T_KelainanLabT_OrderHeaderID = {$orderid}"; $this->db_onedev->query($sql); foreach ($results as $v_result) { $sql_kel_lab = "SELECT * FROM t_kelainan_lab WHERE T_KelainanLabT_OrderDetailID = ? GROUP BY T_KelainanLabT_OrderDetailID"; $qry_kel_lab = $this->db_onedev->query($sql_kel_lab, array($v_result['orderdetailID'])); if ($qry_kel_lab) { $rows_kel = $qry_kel_lab->result_array(); } else { $this->sys_error_db("select kelainan lab", $this->db_onedev); exit; } if (count($rows_kel) > 0) { // print_r($v_result['orderdetailID']); // exit; $sql_update_kel = "UPDATE t_kelainan_lab SET T_KelainanLabT_OrderDetailID = {$v_result['orderdetailID']}, T_KelainanLabT_OrderHeaderID = {$v_result['orderheaderID']}, T_KelainanLabNat_TestID = {$v_result['nat_testID']}, T_KelainanLabMcu_SummaryLabID = {$v_result['mcu_summarylabID']}, T_KelainanLabCreatedUserID = 1, T_KelainanLabIsActive = 'Y', T_KelainanLabCreated = NOW() WHERE T_KelainanLabID = {$rows_kel[0]['T_KelainanLabID']}"; $qry_update_kel = $this->db_onedev->query($sql_update_kel); if (!$qry_update_kel) { echo $this->db_onedev->last_query(); //$this->db_onedev->trans_rollback(); $this->sys_error_db('error', 'Error update lab: ' . $this->db_onedev); exit; } } else { // print_r('insert'); // exit; $sql_insert_lab = "INSERT INTO t_kelainan_lab( T_KelainanLabT_OrderDetailID, T_KelainanLabT_OrderHeaderID, T_KelainanLabNat_TestID, T_KelainanLabMcu_SummaryLabID, T_KelainanLabCreatedUserID, T_KelainanLabCreated) VALUES( '{$v_result['orderdetailID']}', '{$v_result['orderheaderID']}', '{$v_result['nat_testID']}', '{$v_result['mcu_summarylabID']}', 1, NOW())"; $qry_insert_lab = $this->db_onedev->query($sql_insert_lab); if (!$qry_insert_lab) { //$this->db_onedev->trans_rollback(); echo $this->db_onedev->last_query(); $this->sys_error_db('error', 'Error insert kelainan lab: ' . $this->db_onedev); exit; } } } } } } function savedoctor() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $doctorid = $prm['doctorid']; $userid = $this->sys_user["M_UserID"]; //insert mcu_resume $resumeID = 0; $sql = "SELECT Mcu_ResumeID FROM mcu_resume WHERE Mcu_ResumeT_OrderHeaderID = ? AND Mcu_ResumeIsActive = 'Y'"; $query = $this->db_onedev->query($sql, [$id]); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } $dataCek = $query->result_array(); if (count($dataCek) == 0) { $sql = "INSERT INTO mcu_resume (Mcu_ResumeT_OrderHeaderID, Mcu_ResumeStatus, Mcu_ResumeM_DoctorID, Mcu_ResumeCreated, Mcu_ResumeUserID ) VALUES(?,'NEW',?,NOW(),?)"; $query = $this->db_onedev->query($sql, [ $id, $doctorid, $userid, ]); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } $resumeID = $this->db_onedev->insert_id(); } else { $resumeID = $dataCek[0]['Mcu_ResumeID']; $sql = "UPDATE mcu_resume SET Mcu_ResumeM_DoctorID = ?, Mcu_ResumeUserID = ? WHERE Mcu_ResumeID = ?"; $query = $this->db_onedev->query($sql, [ $doctorid, $userid, $resumeID, ]); if (!$query) { $message = $this->db_onedev->error(); $message['qry'] = $this->db_onedev->last_query(); $this->sys_error($message); exit; } } $this->sys_ok('OK'); exit; } }