183 lines
7.4 KiB
PHP
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]
|
|
}
|
|
} |