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 "
";
        $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);
    }
}