318 lines
13 KiB
PHP
318 lines
13 KiB
PHP
<?php
|
|
class Fisik01 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 json($start, $end, $company = 0, $mou = 0)
|
|
{
|
|
$start = $start . " 00:00:01";
|
|
$end = $end . " 23:59:59";
|
|
$sql = "select T_OrderHeaderID
|
|
from t_orderheader
|
|
where T_OrderHeaderIsActive = 'Y'
|
|
and T_OrderHeaderDate >= ? and T_OrderHeaderDate <= ?
|
|
and ( T_OrderHeaderM_CompanyID = $company or $company = 0 )
|
|
and ( T_OrderHeaderM_MouID = $mou or $mou = 0 )
|
|
";
|
|
$qry = $this->db->query($sql, [$start, $end]);
|
|
if (!$qry) {
|
|
//Error Query
|
|
$db_err = $this->db->error();
|
|
echo json_encode([
|
|
"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, [$headerID]);
|
|
if (!$qry) {
|
|
//Error Query
|
|
$db_err = $this->db->error();
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => $db_err["message"],
|
|
]);
|
|
exit();
|
|
}
|
|
$rows = $qry->result_array();
|
|
$data = [];
|
|
$new_d = [];
|
|
$a_title = [];
|
|
$have_gigi = false;
|
|
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"];
|
|
|
|
/* 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 ($d["title"] == "RIWAYAT KEBIASAAN HIDUP") {
|
|
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);
|
|
}
|
|
continue;
|
|
}
|
|
//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"] == "GIGI") {
|
|
if (!$have_gigi) {
|
|
$dy_detail["label"] = "kesimpulan";
|
|
$dy_detail["value"] = $this->hasil_gigi(
|
|
$dy_details
|
|
);
|
|
$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"] . " " . $dx["unit"];
|
|
}
|
|
$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, ["Fisik01", "cmp"]);
|
|
echo json_encode($new_d);
|
|
}
|
|
function hasil_gigi($da)
|
|
{
|
|
$arr_gigi = [];
|
|
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] = [];
|
|
}
|
|
$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, [$headerID]);
|
|
if (!$qry) {
|
|
//Error Query
|
|
$db_err = $this->db->error();
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => $db_err["message"],
|
|
]);
|
|
exit();
|
|
}
|
|
$rows = $qry->result_array();
|
|
$data = [];
|
|
echo "<pre>";
|
|
$new_d = [];
|
|
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 = [];
|
|
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"] .
|
|
" " .
|
|
$dy_detail["unit"];
|
|
}
|
|
$new_d[] = array_merge($d, $dx, $dy_detail);
|
|
}
|
|
} else {
|
|
if (isset($dx["unit"]) && isset($dx["value"])) {
|
|
$dx["value"] = $dx["value"] . " " . $dx["unit"];
|
|
}
|
|
$new_d[] = array_merge($d, $dx);
|
|
}
|
|
}
|
|
$new_r[] = $new_d;
|
|
}
|
|
}
|
|
print_r($new_d);
|
|
}
|
|
}
|