Files
BE_CPONE/application/controllers/v1/adhi/fisik/Fisik03.php
2026-04-27 10:26:26 +07:00

470 lines
17 KiB
PHP

<?php
class Fisik03 extends MY_Controller
{
var $db_onedev;
public function index()
{
echo "Fisik 01";
}
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
}
function kesimpulanv4($orderHeaderID, $langid = 1)
{
//mata visus gigi
$sql = "select So_ResultEntryID,So_ResultEntrySo_TemplateName
from so_resultentry
where So_ResultEntryT_OrderHeaderID= ? and So_ResultEntryIsActive = 'Y'";
$qry = $this->db->query($sql, [$orderHeaderID]);
if (!$qry) {
return ["", "", ""];
}
$rows = $qry->result_array();
$id = 0;
foreach ($rows as $r) {
if ($r["So_ResultEntrySo_TemplateName"] == "FISIK UMUM") {
$id = $r["So_ResultEntryID"];
break;
}
if (substr($r["So_ResultEntrySo_TemplateName"], 0, 5) == "FISIK") {
$id = $r["So_ResultEntryID"];
break;
}
}
$sql = "SELECT *
FROM so_resultentry_fisik_umum
WHERE
So_ResultEntryFisikUmumSo_ResultEntryID = ? AND
So_ResultEntryFisikUmumM_LangID = ? AND
So_ResultEntryFisikUmumType = 'riwayat'
";
$qry = $this->db->query($sql, array($id, $langid));
$data_rows = $qry->result_array();
if (count($data_rows) == 0) return '';
$riwayat_data = json_decode($data_rows[0]["So_ResultEntryFisikUmumDetails"], true);
$kode_gigi = array(
"X" => "Berlubang",
"C" => "Tambalan",
"O" => "Tanggal",
"R" => "Sisa akar",
"A" => "Gigi Palsu",
"K" => "Karang Gigi"
);
$sql = "SELECT so_resultentry_fisik_umum.*, M_SexCode
FROM so_resultentry_fisik_umum
JOIN so_resultentry ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID
JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
JOIN m_sex ON M_PatientM_SexID = M_SexID
WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ?
AND So_ResultEntryFisikUmumM_LangID = ?
AND So_ResultEntryFisikUmumType = 'fisik'";
$qry = $this->db->query($sql, array($id, $langid));
$rows = $qry->result_array();
if (count($rows) == 0) return '';
$data = json_decode($rows[0]["So_ResultEntryFisikUmumDetails"], true);
$sexcode = $rows[0]["M_SexCode"];
$kesimpulan_mata = "";
$kesimpulan_visus = "";
$kesimpulan_gigi = "";
foreach ($data as $da) {
if ($da["title"] == "MATA") {
$rst_x = '';
foreach ($da["details"] as $db) {
if ($db["chx"] == "1" && $db["is_normal"] == "N" && $db["label"] != "Lain-lain") {
if ($rst_x != "") $rst_x .= ", ";
$rst_x .= $db["label"] . " " . $db["value"];
}
if ($db["label"] == "Lain-lain" && $db["chx"] == "1") {
if ($rst_x != "") $rst_x .= ", ";
$rst_x .= $db["value"];
}
}
if ($rst_x !== '') {
$kesimpulan_mata .= ucwords(strtolower($da["title"])) . " : " . $rst_x;
}
}
if ($da["title"] == "VISUS JAUH") {
$s_rst = '';
foreach ($da["details"] as $db) {
$str_data = "";
$r_ods = '';
$xr_ods = array();
$kelainan = '';
foreach ($db['details'] as $dc) {
if ($dc['chx'] == '1' && $dc['segment_name'] == 'Tanpa kacamata' && ($dc['value'] != '' && $dc['value'] != '6/6')) {
$r_ods .= $dc['label'] . " : " . $dc['value'] . " ";
array_push($xr_ods, $dc['value']);
}
if ($dc['chx'] == '1' && $dc['segment_name'] == 'Dengan kacamata' && $dc['value'] != '') {
if ($dc['value'] != '6/6')
$r_ods .= $dc['label'] . " : " . $dc['value'] . " ";
array_push($r_ods);
array_push($xr_ods, $dc['value']);
}
}
//print_r($xr_ods);
if (!empty($xr_ods)) {
if ($db['name'] == 'Tanpa kacamata') {
$kelainan = "Kelainan Refraksi";
$str_data .= $kelainan . " " . $db['name'];
}
if ($db['name'] == 'Dengan kacamata') {
$all66 = true;
foreach ($xr_ods as $xd => $xv) {
if ($xv != '6/6') {
$all66 = false;
}
}
if ($all66) {
$kelainan = "Kelainan Refraksi Terkoreksi";
} else {
$kelainan = "Kelainan Refraksi";
}
if ($r_ods != '')
$str_data .= $kelainan . " " . $db['name'];
else
$str_data .= $kelainan . " " . $db['name'];
}
$s_rst .= $str_data;
}
//echo $str_data;
}
if ($s_rst != "") {
$kesimpulan_visus .= $s_rst;
}
}
if ($da["title"] == "GIGI") {
$arr_gigi = array();
foreach ($da["details"] as $db) {
foreach ($db["details"] as $dc) {
$dc["value"] = strtoupper($dc["value"]);
if ($dc["value"] != "" && isset($kode_gigi[$dc["value"]])) {
$value = $kode_gigi[$dc["value"]];
if (!isset($arr_gigi[$value])) $arr_gigi[$value] = array();
$kode = $dc["id_code"];
$pos = substr($kode, -1);
if (strpos($kode, "atas")) {
if (strpos($kode, "kiri")) {
$arr_gigi[$value][] = "" . $pos;
} else {
$arr_gigi[$value][] = $pos . "";
}
} else {
if (strpos($kode, "kiri")) {
$arr_gigi[$value][] = "" . $pos;
} else {
$arr_gigi[$value][] = $pos . "";
}
}
}
}
}
$r_gigi = "";
foreach ($arr_gigi as $v => $g) {
if ($r_gigi != "") $r_gigi .= " ";
$r_gigi .= " " . $v . " " . join(",", $g) . " ";
}
if ($r_gigi != "") {
$kesimpulan_gigi .= $r_gigi;
// $r_gigi = "";
// foreach ($arr_gigi as $v => $g) {
// if ($r_gigi != "") $r_gigi .= "<br/>";
// $r_gigi .= "<span style='margin-left:25px'>" . $v . " " . join(",", $g) . "</span>";
// }
// if ($r_gigi != "") {
// $kesimpulan_gigi .= $r_gigi;
}
}
}
$result = [$kesimpulan_mata, $kesimpulan_visus, $kesimpulan_gigi];
return $result;
}
function json($orderID)
{
$start = $start . " 00:00:01";
$end = $end . " 23:59:59";
$sql = "select T_OrderHeaderID
from t_orderheader
where T_OrderHeaderIsActive = 'Y'
and T_OrderHeaderID=?
";
$qry = $this->db->query($sql, array($orderID));
if (!$qry) {
//Error Query
$db_err = $this->db->error();
echo json_encode(array(
"status" => "ERR",
"message" => $db_err["message"]
));
exit;
}
$rows = $qry->result_array();
$sid = "0";
foreach ($rows as $r) {
$sid .= ", " . $r["T_OrderHeaderID"];
}
$sql = "select
fn_global_patient_name(T_OrderHeaderM_PatientID) M_PatientName,
fn_get_patient_atribute(T_OrderHeaderM_PatientID) attr,
T_OrderHeaderDate,T_OrderHeaderLabNumber,
-- T_OrderHeaderLabNumberExt,
T_OrderHeaderM_PatientAge,
'' M_CompanyName, '' M_MouName,
T_TestName,
-- So_ResultEntryFisikUmumType,
So_ResultEntryFisikUmumDetails
from t_orderheader
-- join m_company on T_OrderHeaderM_CompanyID = M_CompanyID
-- join m_mou on T_OrderHeaderM_MouID = M_MouID
join t_orderdetail on T_OrderDetailT_OrderHeaderID= T_OrderHeaderID and T_OrderDetailIsActive = 'Y'
join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' and T_TestNat_GroupID = '4'
join so_resultentry on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and So_ResultEntryT_OrderDetailID = T_OrderDetailID
join so_resultentry_fisik_umum on So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID
where T_OrderHeaderID in ($sid) order by So_ResultEntryFisikUmumID ";
$qry = $this->db->query($sql);
if (!$qry) {
//Error Query
$db_err = $this->db->error();
echo json_encode(array(
"status" => "ERR",
"message" => $db_err["message"]
));
exit;
}
$rows = $qry->result_array();
$data = array();
$new_d = array();
$a_title = array();
$have_gigi = false;
list($kesimpulan_mata, $kesimpulan_visus, $kesimpulan_gigi) = $this->kesimpulanv4($orderID);
foreach ($rows as $r) {
$attr = json_decode($r["attr"], true);
unset($r["attr"]);
$r_details = json_decode($r["So_ResultEntryFisikUmumDetails"], true);
unset($r["So_ResultEntryFisikUmumDetails"]);
//$new_r = array();
$is_gigi = false;
foreach ($r_details as $idx => $d) {
$details = $d["details"];
if (isset($d["details"])) unset($d["details"]);
$d["T_TestName"] = $r["T_TestName"];
$d["T_OrderHeaderDate"] = $r["T_OrderHeaderDate"];
$d["T_OrderHeaderLabNumber"] = $r["T_OrderHeaderLabNumber"];
$d["T_OrderHeaderLabNumberExt"] = $r["T_OrderHeaderLabNumberExt"];
$d["M_PatientName"] = $r["M_PatientName"];
$d["M_PatientDOB"] = $attr["M_PatientDOB"];
$d["M_PatientAge"] = $r["T_OrderHeaderM_PatientAge"];
$d["M_SexName"] = $attr["M_SexName"];
$d["M_CompanyName"] = $r["M_CompanyName"];
$d["M_MouName"] = $r["M_MouName"];
$d["So_ResultEntryFisikUmumType"] = $r["So_ResultEntryFisikUmumType"];
/* if ($d["title"] == "GIGI") {
$dx = $details[0];
$dy = $dx["details"][0];
$dy["label"] = "kesimpulan";
$dy["value"] = $this->hasil_gigi($dx["details"]);
$new_d[] = array_merge($d,$dy);
continue;
} */
foreach ($details as $dx) {
if (isset($dx["details"])) {
$dy_details = $dx["details"];
unset($dx["details"]);
foreach ($dy_details as $dy_detail) {
if (
$d["title"] == "ANGGOTA GERAK" || $d["title"] == "MULUT" || $d["title"] == "JANTUNG"
|| $d["title"] == "PERUT / ABDOMEN" || $d["title"] == "SISTEM PERSYARAFAN" || $d["title"] == "SISTEM INTEGUMEN"
) {
if ($dy_detail["chx"] == "1") {
$dy_detail["value"] = $dy_detail["label"];
$dy_detail["label"] = $dy_detail["segment_name"];
$new_d[] = array_merge($d, $dx, $dy_detail);
}
}
//if ($dy["value"] == "") continue;
if (isset($dy_detail["unit"]) && isset($dy_detail["value"])) {
$dy_detail["value"] = $dy_detail["value"] . " " . $dy_detail["unit"];
}
if ($d["title"] == "VISUS JAUH") {
$dy_detail["kesimpulan"] = $kesimpulan_visus;
}
if ($d["title"] == "GIGI") {
// if (!$have_gigi) {
// $dy_detail["label"] = "kesimpulan";
// $dy_detail["value"] = $this->hasil_gigi($dy_details);
// $new_d[] = array_merge($d, $dx, $dy_detail);
// }
if ($kesimpulan_gigi != "" && !$is_gigi) {
$is_gigi = true;
$dy_detail["label"] = "kesimpulan";
$dy_detail["value"] = $kesimpulan_gigi;
$new_d[] = array_merge($d, $dx, $dy_detail);
}
$have_gigi = true;
} else {
$new_d[] = array_merge($d, $dx, $dy_detail);
}
}
} else {
if ($dx["value"] != "") {
if (isset($dx["unit"]) && isset($dx["value"])) {
$dx["value"] = $dx["value"];
}
$new_d[] = array_merge($d, $dx);
}
if ($dx["chx_y"] == 1) {
$dx["value"] = $dx["label_y"];
$new_d[] = array_merge($d, $dx);
}
if ($dx["chx_x"] == 1) {
$dx["value"] = $dx["label_x"];
$new_d[] = array_merge($d, $dx);
}
if ($dx["chx"] == 1) {
$dx["value"] = $dx["label"] . " " . $d["value"];
$new_d[] = array_merge($d, $dx);
}
}
}
//$new_r[] = $new_d;
}
}
$x_d = usort($new_d, array("Fisik01", "cmp"));
echo json_encode($new_d);
}
function hasil_gigi($da)
{
$arr_gigi = array();
foreach ($da["details"] as $db) {
foreach ($db["details"] as $dc) {
$dc["value"] = strtoupper($dc["value"]);
if ($dc["value"] != "" && isset($kode_gigi[$dc["value"]])) {
$value = $kode_gigi[$dc["value"]];
if (!isset($arr_gigi[$value])) $arr_gigi[$value] = array();
$kode = $dc["id_code"];
$pos = substr($kode, -1);
if (strpos($kode, "atas")) {
if (strpos($kode, "kiri")) {
$arr_gigi[$value][] = "" . $pos;
} else {
$arr_gigi[$value][] = $pos . "";
}
} else {
if (strpos($kode, "kiri")) {
$arr_gigi[$value][] = "" . $pos;
} else {
$arr_gigi[$value][] = $pos . "";
}
}
}
}
}
$r_gigi = "";
foreach ($arr_gigi as $v => $g) {
if ($r_gigi != "") $r_gigi .= "\n";
$r_gigi .= $v . " " . join(",", $g);
}
return $r_gigi;
}
function cmp($a, $b)
{
$a_key = substr($a["title"], 1, 3) . "-" . $a["label"];
$b_key = substr($b["title"], 1, 3) . "-" . $b["label"];
return strcmp($a_key, $b_key);
}
function json_single($headerID)
{
$sql = "select
fn_global_patient_name(T_OrderHeaderM_PatientID) M_PatientName,
fn_get_patient_atribute(T_OrderHeaderM_PatientID) attr,
T_OrderHeaderDate,T_OrderHeaderLabNumber, T_OrderHeaderLabNumberExt,T_OrderHeaderM_PatientAge,
' ' M_CompanyName, M_MouName,
T_TestName,
So_ResultEntryFisikUmumType,
So_ResultEntryFisikUmumDetails
from t_orderheader
-- join m_company on T_OrderHeaderM_CompanyID = M_CompanyID
join m_mou on T_OrderHeaderM_MouID = M_MouID
join t_orderdetail on T_OrderDetailT_OrderHeaderID= T_OrderHeaderID and T_OrderDetailIsActive = 'Y'
join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' and T_TestNat_GroupID = '4'
join so_resultentry on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and So_ResultEntryT_OrderDetailID = T_OrderDetailID
join so_resultentry_fisik_umum on So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID
where T_OrderHeaderID =?";
$qry = $this->db->query($sql, array($headerID));
if (!$qry) {
//Error Query
$db_err = $this->db->error();
echo json_encode(array(
"status" => "ERR",
"message" => $db_err["message"]
));
exit;
}
$rows = $qry->result_array();
$data = array();
echo "<pre>";
$new_d = array();
foreach ($rows as $r) {
$attr = json_decode($r["attr"], true);
unset($r["attr"]);
$r_details = json_decode($r["So_ResultEntryFisikUmumDetails"], true);
unset($r["So_ResultEntryFisikUmumDetails"]);
$new_r = array();
foreach ($r_details as $idx => $d) {
$details = $d["details"];
unset($d["details"]);
$d["T_TestName"] = $r["T_TestName"];
$d["T_OrderHeaderDate"] = $r["T_OrderHeaderDate"];
$d["T_OrderHeaderLabNumber"] = $r["T_OrderHeaderLabNumber"];
$d["T_OrderHeaderLabNumberExt"] = $r["T_OrderHeaderLabNumberExt"];
$d["M_PatientName"] = $r["M_PatientName"];
$d["M_PatientDOB"] = $attr["M_PatientDOB"];
$d["M_PatientAge"] = $r["T_OrderHeaderM_PatientAge"];
$d["M_SexName"] = $attr["M_SexName"];
$d["M_CompanyName"] = $r["M_CompanyName"];
$d["M_MouName"] = $r["M_MouName"];
$d["So_ResultEntryFisikUmumType"] = $r["So_ResultEntryFisikUmumType"];
foreach ($details as $dx) {
if (isset($dx["details"])) {
$dy_details = $dx["details"];
unset($dx["details"]);
foreach ($dy_details as $dy_detail) {
if (isset($dy_detail["unit"]) && isset($dy_detail["value"])) {
$dy_detail["value"] = $dy_detail["value"];
}
$new_d[] = array_merge($d, $dx, $dy_detail);
}
} else {
if (isset($dx["unit"]) && isset($dx["value"])) {
$dx["value"] = $dx["value"];
}
$new_d[] = array_merge($d, $dx);
}
}
$new_r[] = $new_d;
}
}
print_r($new_d);
}
}