Files
BE_CPONE/application/controllers/tools/Fisik_organ.php
2026-04-27 10:26:26 +07:00

183 lines
7.4 KiB
PHP

<?php
class Fisik_organ extends MY_Controller
{
var $db_smartone;
public function index()
{
echo "Fisik Organ API";
}
public function __construct()
{
parent::__construct();
}
public function generate($labnumber) {
if (isset($labnumber)) {
// cari orderid
$sql = "SELECT DISTINCT T_OrderHeaderID
FROM t_orderheader
WHERE T_OrderHeaderOldLabNumber = '{$labnumber}'";
$qry = $this->db->query($sql);
// echo $this->db->last_query();
if (!$qry) {
echo json_encode([
"status" => "ERR",
"message" => "Error get t_orderheader | " . $this->db->error()["message"]
]);
exit;
}
$rows = $qry->row();
if ( count($rows) > 0 ) {
$orderid = $rows->T_OrderHeaderID;
//echo $orderid;
//cari detailid
$sql = "SELECT T_OrderDetailID
FROM t_orderdetail
WHERE T_OrderDetailT_OrderHeaderID = {$orderid}
AND T_OrderDetailT_TestID = 2562
AND T_OrderDetailIsActive = 'Y'
";
$qry = $this->db->query($sql);
if (!$qry) {
echo json_encode([
"status" => "ERR",
"message" => "Error get t_orderdetail | " . $this->db->error()["message"]
]);
exit;
}
$row_details = $qry->row();
if(count($row_details) > 0 ){
$detailid = $row_details->T_OrderDetailID;
// print_r($row_details);
$qry = "SELECT COUNT(*) as exist FROM so_resultentry WHERE So_ResultEntryT_OrderHeaderID = {$orderid}
AND So_ResultEntryT_OrderDetailID = {$detailid}
AND So_ResultEntryNonlab_TemplateID = 27
AND So_ResultEntryIsActive = 'Y'";
$exist_data = $this->db->query($qry)->row()->exist;
if($exist_data == 0){
$sql = "INSERT INTO so_resultentry(So_ResultEntryT_OrderHeaderID,
So_ResultEntryT_OrderDetailID,
So_ResultEntryNonlab_TemplateID,
So_ResultEntryNonlab_TemplateName,
So_ResultEntryCreated)
VALUES({$orderid},
{$detailid},
27,
'Fisik Umum',
now())";
$query = $this->db->query($sql);
if (!$query) {
echo json_encode([
"status" => "ERR",
"message" => "Error insert so_resultentry | " . $this->db->error()["message"]
]);
exit;
}
$so_id = $this->db->insert_id();
}else{
$qry = "SELECT So_ResultEntryID FROM so_resultentry WHERE So_ResultEntryT_OrderHeaderID = {$orderid}
AND So_ResultEntryT_OrderDetailID = {$detailid}
AND So_ResultEntryNonlab_TemplateID = 27
AND So_ResultEntryIsActive = 'Y'";
$so_id = $this->db->query($qry)->row()->So_ResultEntryID;
}
// echo 'so id '.$so_id;
//PROSES
$arr_map = $this->getArrayMap();
$sql = "select * from x_adm_rekap_fisik_organ where REG_NO = '{$labnumber}'";
$qry = $this->db->query($sql, [$reg_no]);
if (!$qry) {
echo json_encode([
"status" => "ERR",
"message" => "Error get x_adm_rekap_fisik_organ | " . $this->db->error()["message"]
]);
exit;
}
$rows = $qry->result_array();
foreach ($rows as $r) {
foreach ($r as $key => $value) {
if ($key == "REG_NO") continue;
list($id_code, $templateID) = $arr_map[$key];
list($soResultEntryFisikUmumID, $strJsonAwal) = $this->getSoResultEntryFisikUmumID($so_id, $templateID);
$jsonAwal = json_decode($strJsonAwal, true);
// update jsonAwal sesuai dengan id_code dan value nya
// kalau sudah update ke so_resultentryfisikumum
switch ($id_code) {
case "gizi_1":
//update jsonAwal utk gizi_1
break;
case "gizi_2":
//update jsonAwal utk gizi_1
break;
}
print_r($jsonAwal);
}
}
}
}else{
echo json_encode([
"status" => "ERR",
"message" => "Tidak ditemukan data"
]);
exit;
}
}
}
function getArrayMap()
{
$sql = "select * from x_map_fisik_organ";
$qry = $this->db->query($sql);
if (!$qry) {
echo json_encode([
"status" => "ERR",
"message" => "Error get x_map_fisik_organ | " . $this->db->error()["message"]
]);
exit;
}
$arr_map = [];
$rows = $qry->result_array();
foreach ($rows as $r) {
$arr_map[$r["name"]] = [$r["code_id"], $r["templateID"]];
}
return $arr_map;
}
function getSoResultEntryFisikUmumID($soResultEntryID, $templateID)
{
$so_resultentryid = $soResultEntryID;
$templateid = $templateID;
$sql = "SELECT *
FROM so_resultentry_fisik_umum
WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ?
AND So_ResultEntryFisikUmumFisikTemplateID = ?
AND So_ResultEntryFisikUmumIsActive = 'Y'";
$qry = $this->db->query($sql);
if (!$qry) {
echo json_encode([
"status" => "ERR",
"message" => "Error get so_resultentry_fisik_umum | " . $this->db->error()["message"]
]);
exit;
}
$arr_map = [];
$rows = $qry->result_array();
foreach ($rows as $r) {
$arr_map[$r["So_ResultEntryFisikUmumID"]] = [$r["So_ResultEntryFisikUmumID"], $r["So_ResultEntryFisikUmumDetails"]];
}
print_r($arr_map);
exit;
return $arr_map;
//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]
}
}