getOrderDetailID($regno); $arr_map = $this->getArrayMap(); $soResultEntryID = $this->getSoResultEntryID($orderDetailID); $sql_u = "update so_resultentryfisikumum set So_ResultEntryFisikUmumDetails = ? where So_ResultEntryFisikUmumID = ?"; $sql = "SELECT DISTINCT REG_NO, Keluhan, `Riwayat Penyakit Dahulu`, Ayah , Ibu , Alergi, `Kebiasaan Merokok`, `Kebiasaan Alkohol`, `Kebiasaan Olahraga` FROM x_adm_rekap_riwayat WHERE REG_NO = ?"; $qry = $this->db->query($sql, [$regno]); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => "Error get x_adm_rekap_riwayat | " . $this->db->error()["message"] ]); exit; } $rows = $qry->result_array(); foreach ($rows as $r) { foreach ($r as $key => $value) { if ($key == "REG_NO") continue; $templateID = $arr_map[$key][1]; if ($templateID == "") continue; list($soResultEntryFisikUmumID, $strJsonAwal) = $this->getSoResultEntryFisikUmumID($soResultEntryID, $templateID); echo $soResultEntryFisikUmumID; echo "\n"; echo "$key,$value\n\n"; $jsonAwal = json_decode($strJsonAwal, true); switch ($key) { case "Keluhan": $idx_id_code = $this->find_label_index($jsonAwal['details'], $value); if ($idx_id_code == -1) { if(strlen($value) > 3){ $jsonAwal['details'][27]['chx'] = true; $jsonAwal['details'][27]['value'] = $value; } }else{ $jsonAwal['details'][$idx_id_code]['chx'] = true; } // update json detail utk riwayat keluhan break; case "Riwayat Penyakit Dahulu": $explode = explode("\n", $value); $etc_values = []; foreach ($explode as $xpld){ for ($i=0; $i < count($jsonAwal['details']); $i++) { print_r("\n----"); print_r($xpld); print_r("---\n"); $idx_name_code = $this->find_label_index($jsonAwal['details'][$i]['details'], $xpld); if ($idx_id_code == -1) { $etc_value = $xpld; $idx_id_code = 0; break; }else { } } $etc_values[] = $etc_value; // switch($xpld){ // case "Operasi": // $etc_value = [$xpld]; // } } print_r("\n----"); print_r("---\n"); exit; // $idx_id_code = $this->find_label_index($jsonAwal['details'], $value); // if ($idx_id_code == -1) { // if(strlen($value) > 3){ // $jsonAwal['details'][27]['chx'] = true; // $jsonAwal['details'][27]['value'] = $value; // } // }else{ // $jsonAwal['details'][$idx_id_code]['chx'] = true; // } // update json detail utk riwayat keluhan break; // case "fisik_keluhan_2": // $idx_id_code = $this->find_id_code_index($jsonAwal['details'], "fisik_keluhan_2"); // if ($idx_id_code == -1) continue; // $jsonAwal['details'][$idx_id_code]['value'] = $value; // //update jsonAwal utk gizi_1 // break; // case "fisik_keluhan_3": // $idx_id_code = $this->find_id_code_index($jsonAwal['details'], "fisik_keluhan_3"); // if ($idx_id_code == -1) continue; // $jsonAwal['details'][$idx_id_code]['value'] = $value; // //update jsonAwal utk gizi_1 // break; default: echo "tidak ada case dengan code {$key} \n"; } // $sql_u = "UPDATE so_resultentry_fisik_umum // SET So_ResultEntryFisikUmumDetails = ? // WHERE So_ResultEntryFisikUmumID = ?"; // $qry = $this->db->query($sql_u, [json_encode($jsonAwal), $soResultEntryFisikUmumID]); // if (!$qry) { // echo json_encode([ // "status" => "ERR", // "message" => "Error update so_resultentry_fisik_umum | " . $this->db->error()["message"] // ]); // exit; // } // echo "ini qry : "; // print_r($qry); // exit; } } } function getOrderDetailID($reg_no) { if (isset($reg_no)) { $sql = "SELECT T_OrderHeaderID FROM t_orderheader WHERE T_OrderHeaderOldLabNumber = ?"; $qry = $this->db->query($sql, $reg_no); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => "Error get t_orderheader | " . $this->db->error()["message"] ]); exit; } $rows = $qry->result_array(); if (count($rows) != 0) { $t_orderheaderid = $rows[0]['T_OrderHeaderID']; $t_testid = 2562; echo "T_OrderHeaderID: " . $t_orderheaderid . "\n"; echo "t_testid: " . $t_testid . "\n"; $sql = "SELECT T_OrderDetailID FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = ? AND T_OrderDetailIsActive = 'Y'"; $qry = $this->db->query($sql, [$t_orderheaderid, $t_testid]); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => "Error get t_orderdetail | " . $this->db->error()["message"] ]); exit; } $rows_detail = $qry->result_array(); if (count($rows_detail) != 0) { $t_orderdetailid = $rows_detail[0]['T_OrderDetailID']; } echo "t_orderdetailid: " . $t_orderdetailid . "\n"; return [$t_orderheaderid, $t_orderdetailid]; } else { echo json_encode([ "status" => "ERR", "message" => "Tidak ditemukan Registrasi dengan nomor registrasi : " . $reg_no ]); exit; } } } function getArrayMap() { $sql = "SELECT * FROM x_map_riwayat"; $qry = $this->db->query($sql); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => "Error get x_map_riwayat | " . $this->db->error()["message"] ]); exit; } $arr_map = []; $rows = $qry->result_array(); foreach ($rows as $r) { $arr_map[$r["X_Map_RiwayatName"]] = [$r["X_Map_RiwayatCodeID"], $r["X_Map_RiwayatTemplateID"]]; } return $arr_map; } public function getSoResultEntryID($t_orderdetailid_v) { $t_orderdetailid = $t_orderdetailid_v; $nonlab_templateid = 27; $nonlab_templatename = 'Fisik Umum'; $sql = "SELECT So_ResultEntryID FROM so_resultentry WHERE So_ResultEntryT_OrderDetailID = ? AND So_ResultEntryNonlab_TemplateID = ? AND So_ResultEntryNonlab_TemplateName = ? AND So_ResultEntryIsActive= 'Y'"; $qry = $this->db->query($sql, [$t_orderdetailid, $nonlab_templateid, $nonlab_templatename]); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => "Error get so_resultentry | " . $this->db->error()["message"] ]); exit; } $rows = $qry->result_array(); $so_resultentryid = 0; if(count($rows) == 0) { $insert_sql = "INSERT INTO so_resultentry ( So_ResultEntryT_OrderDetailID, So_ResultEntryNonlab_TemplateID, So_ResultEntryNonlab_TemplateName) VALUES (?, ?, ?)"; $this->db->query($insert_sql, [$t_orderdetailid, $nonlab_templateid, $nonlab_templatename]); echo "so_resultentry baru dibuat \n"; $so_resultentryid = $this->db->insert_id(); } else { $so_resultentryid = $rows[0]['So_ResultEntryID']; } echo "So_ResultEntryID: " . $so_resultentryid . "\n"; return $so_resultentryid; } function getSoResultEntryFisikUmumID($soResultEntryID, $templateID) { $sql = "SELECT * FROM so_resultentry_fisik_umum WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ? AND So_ResultEntryFisikUmumFisikTemplateID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'"; $qry = $this->db->query($sql, array($soResultEntryID, $templateID)); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => "Error get so_resultentry | " . $this->db->error()["message"] ]); exit; } $rows = $qry->result_array(); $So_ResultEntryFisikUmumDetails = []; $So_ResultEntryFisikUmumID = 0; if(count($rows) == 0) { echo ("JSON dengan ID :" . $soResultEntryID . " dan template id {$templateID} tidak ada. \n"); $search_sql = "SELECT * FROM fisik_template WHERE FisikTemplateID = ? -- AND FisikTemplateIsActive = 'Y' "; $qry_search = $this->db->query($search_sql, [$templateID]); if (!$qry_search) { echo json_encode([ "status" => "ERR", "message" => "Error get so_resultentry | " . $this->db->error()["message"] ]); exit; } $search_rows = $qry_search->result_array(); if(count($search_rows) != 0) { $FisikTemplateID = $search_rows[0]['FisikTemplateID']; $FisikTemplateJSON = $search_rows[0]['FisikTemplateJSON']; echo "FisikTemplateID :" . $FisikTemplateID . "\n"; $insert_sql = "INSERT INTO so_resultentry_fisik_umum (So_ResultEntryFisikUmumSo_ResultEntryID, So_ResultEntryFisikUmumFisikTemplateID, So_ResultEntryFisikUmumDetails) VALUES ( ?, ?, ? ) "; $this->db->query($insert_sql, array($soResultEntryID, $FisikTemplateID, $FisikTemplateJSON )); echo "so_resultentry_fisik_umum baru dibuat \n"; $So_ResultEntryFisikUmumID = $this->db->insert_id(); $So_ResultEntryFisikUmumDetails = $FisikTemplateJSON; }else{ echo "Gagal INSERT ke so_resultentry_fisik_umum karena fisik_template tidak ditemukan"; exit; } $So_ResultEntryFisikUmumID = $rows[0]['So_ResultEntryFisikUmumID']; $So_ResultEntryFisikUmumDetails = $rows[0]['So_ResultEntryFisikUmumDetails']; } else { $So_ResultEntryFisikUmumID = $rows[0]['So_ResultEntryFisikUmumID']; $So_ResultEntryFisikUmumDetails = $rows[0]['So_ResultEntryFisikUmumDetails']; } echo "So_ResultEntryFisikUmumID: " . $So_ResultEntryFisikUmumID . "\n"; // echo "so_resultentrydetails: " . $So_ResultEntryFisikUmumDetails . "\n\n"; return [$So_ResultEntryFisikUmumID, $So_ResultEntryFisikUmumDetails]; // echo "So_ResultEntryFisikUmumDetails: " . $so_resultentrydetails . "\n"; // return $so_resultentryid; //cari di so_resultentryfisikumum // jika ketemu returnkan So_ResultEntryFisikUmumDetails // jika tidak ketemu cari dari fisik template , FisikTemplateJSON // insertkan ke so_resultentryfisikumum //retun nya [So_ResultEntryFisikUmumID, JSON] } function find_label_index($details, $inp_value) { $result = -1; foreach ($details as $idx => $value) { echo("\nmmmm\n"); echo "ini search labelnya " . $value["label"]; echo "ini search valuenya " . $inp_value; echo("\nmmmm\n"); if ($value["label"] == $inp_value) { echo $idx; echo "sama"; return $idx; } } echo $inp_value; return $result; } function find_id_code_index($details, $id_code) { $result = -1; foreach ($details as $idx => $value) { if ($value["id_code"] == $id_code) { return $idx; } } return $result; } function coba(){ $sql = "SELECT DISTINCT REG_NO, Keluhan, `Riwayat Penyakit Dahulu`, Ayah , Ibu , Alergi, `Kebiasaan Merokok`, `Kebiasaan Alkohol`, `Kebiasaan Olahraga` FROM x_adm_rekap_riwayat WHERE REG_NO = '23ADM20004Z'"; $qry = $this->db->query($sql); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => "Error get x_adm_rekap_riwayat | " . $this->db->error()["message"] ]); exit; } $rows = $qry->result_array(); foreach ($rows as $r) { foreach ($r as $key => $value) { $var = explode("\n", $value); echo "value: |$value|\n"; print_r ($var); } } } // function update($regno) // { // if (isset($reg_no)) { // $sql = "SELECT T_OrderHeaderID // FROM t_orderheader // WHERE T_OrderHeaderOldLabNumber = ?"; // $qry = $this->db->query($sql, $reg_no); // if (!$qry) { // echo json_encode([ // "status" => "ERR", // "message" => "Error get t_orderheader | " . $this->db->error()["message"] // ]); // exit; // } // $rows = $qry->result(); // if (count($rows) != 0) { // $t_orderheaderid = $rows[0]->T_OrderHeaderID; // $t_testid = 2562; // echo "T_OrderHeaderID: " . $t_orderheaderid . "\n"; // echo "T_OrderHeaderID: " . $t_testid . "\n"; // $sql = "SELECT T_OrderDetailID // FROM t_orderdetail // WHERE T_OrderDetailT_OrderHeaderID = ? // AND T_OrderDetailT_TestID = ? // AND T_OrderDetailIsActive = 'Y'"; // $qry = $this->db->query($sql, array($t_orderheaderid, $t_testid)); // if (!$qry) { // echo json_encode([ // "status" => "ERR", // "message" => "Error get t_orderdetail | " . $this->db->error()["message"] // ]); // exit; // } // $rows_detail = $qry->result(); // if (count($rows_detail) != 0) { // $t_orderdetailid = $rows_detail[0]->T_OrderDetailID; // echo "T_OrderDetailID: " . $t_orderdetailid . "\n"; // } // return [$t_orderheaderid, $t_orderdetailid]; // } else { // echo json_encode([ // "status" => "ERR", // "message" => "Tidak ditemukan Registrasi dengan nomor // registrasi : " . $reg_no // ]); // exit; // } // } // if (isset($regno)) { // $sql = "SELECT DISTINCT T_OrderHeaderID, T_OrderHeaderMgm_McuID // FROM t_orderheader // WHERE T_OrderHeaderOldLabNumber = ? // "; // $qry = $this->db->query($sql, [$regno]); // if (!$qry) { // echo json_encode([ // "status" => "ERR", // "message" => "Error get t_orderheader | " . $this->db->error()["message"] // ]); // exit; // } // $rows = $qry->result_array(); // if (count($rows) != 0) { // $t_orderheaderid = $rows[0]['T_OrderHeaderID']; // $mgm_mcu_id = $rows[0]['T_OrderHeaderMgm_McuID']; // $sql = "SELECT FisikTemplateTitle, FisikTemplateJSON // FROM mgm_mcutemplate // JOIN fisik_template_mapping ON FisikTemplateMappingID = Mgm_McuTemplateFisikTemplateMappingID // AND Mgm_McuTemplateMgm_McuID = $mgm_mcu_id // AND Mgm_McuTemplateIsActive = 'Y' // AND FisikTemplateMappingIsActive = 'Y' // JOIN fisik_template_mapping_detail ON FisikTemplateMappingDetailFisikTemplateMappingID = FisikTemplateMappingID // AND FisikTemplateMappingDetailIsActive = 'Y' // JOIN fisik_template ON FisikTemplateID = FisikTemplateMappingDetailFisikTemplateID // AND FisikTemplateType LIKE 'Riwayat' // AND FisikTemplateIsActive = 'Y' // "; // } else { // echo json_encode([ // "status" => "ERR", // "message" => "Tidak Ada Id ticket" // ]); // exit; // } // } // } }