Files
BE_IBL/application/controllers/Json_placeholder.php
2026-04-15 15:24:53 +07:00

234 lines
8.0 KiB
PHP

<?php
class Json_placeholder extends CI_Controller
{
public function index()
{
echo "AUTH API";
}
public function __construct()
{
parent::__construct();
}
function corss()
{
global $_SERVER;
if (isset($_SERVER["HTTP_ORIGIN"])) {
header("Access-Control-Allow-Origin: " . $_SERVER["HTTP_ORIGIN"]);
} else {
header("Access-Control-Allow-Origin: */*");
}
header("Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS");
header(
"Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization"
);
if (
isset($_SERVER["REQUEST_METHOD"]) &&
$_SERVER["REQUEST_METHOD"] == "OPTIONS"
) {
http_response_code(200);
echo json_encode("OK");
exit();
}
}
function search_allergy() {
$this->corss();
$this->load->database("default");
$max_result = 30;
$param = $this->get_param();
if ($param["search"] == "") {
$sql = "select * from place_holder.drug_allergy limit 0,$max_result";
$qry = $this->db->query($sql);
} else {
$param["search"] = "%" . $param["search"] . "%";
$sql = "select * from place_holder.drug_allergy
where CODE like ? or STR like ?
limit 0,$max_result";
$qry = $this->db->query($sql,[$param["search"]]);
}
if ($qry) {
echo json_encode(["status"=>"ERR","message" => $this->db->error()["message"]]);
exit;
}
echo json_encode(["status"=>"OK","rows"=>$this->db->result_array()]);
}
function search_location()
{
// metode search : 1. search kelurahan ( limit 20) , jika < 20 search kecamatan limit 20 - hasil kelurahan, jika < 20 search city dst
$max_result = 30;
$param = $this->get_param();
$param["search"] = "%" . $param["search"] . "%";
$a_loc = [];
if ($param["queryLoc"] != "") {
$a_loc = explode(",",$param["queryLoc"]);
}
$filter_loc = "";
if (count($a_loc) > 0) {
if (count($a_loc) == 1) {
$filter_loc = " and M_ProvinceName = '" . $a_loc[0] . "'";
}
if (count($a_loc) == 2) {
$filter_loc = " and M_CityName = '" . $a_loc[1] . "'";
}
if (count($a_loc) == 3) {
$filter_loc = " and M_DistrictName= '" . $a_loc[2] . "'";
}
}
$this->load->database("default");
$this->corss();
$sql = "select M_KelurahanID,M_KelurahanName,
M_DistrictID, M_DistrictName,
M_CityID, M_CityName,
M_ProvinceID, M_ProvinceName
from m_kelurahan
join m_district on M_KelurahanName like ?
and M_KelurahanIsActive='Y'
and M_DistrictID = M_KelurahanM_DistrictID
join m_city on M_CityID = M_DistrictM_CityID
and M_CityIsActive = 'Y'
join m_province on M_CityM_ProvinceID = M_ProvinceID
and M_ProvinceIsActive = 'Y'
$filter_loc
limit 0,$max_result";
$qry = $this->db->query($sql, [$param["search"]]);
if (!$qry) {
echo json_encode(["status"=>"ERR","message"=>$this->db->error()["message"]]);
exit;
}
$rows = $qry->result_array();
$result = [];
foreach ($rows as $r) {
$result[] = $r;
$idx = count($result) - 1;
$result[$idx]["tag"] = [
$r["M_ProvinceName"],
$r["M_CityName"],
$r["M_DistrictName"],
$r["M_KelurahanName"],
];
$result[$idx]["level"] = 1;
}
if (count($rows) < $max_result) {
$max_result = $max_result - count($rows);
$sql = "select
M_DistrictID, M_DistrictName,
M_CityID, M_CityName,
M_ProvinceID, M_ProvinceName
from m_district
join m_city on M_DistrictName like ?
and M_DistrictIsActive ='Y'
and M_DistrictM_CityID = M_CityID
and M_CityIsActive = 'Y'
join m_province on M_CityM_ProvinceID = M_ProvinceID
and M_ProvinceIsActive = 'Y'
$filter_loc
limit 0,$max_result";
$qry = $this->db->query($sql, [$param["search"]]);
if (!$qry) {
echo json_encode(["status"=>"ERR","message"=>$this->db->error()["message"]]);
exit;
}
$rows = $qry->result_array();
foreach ($rows as $r) {
$result[] = $r;
$idx = count($result) - 1;
$result[$idx]["tag"] = [
$r["M_ProvinceName"],
$r["M_CityName"],
$r["M_DistrictName"],
];
$result[$idx]["level"] = 2;
}
if (count($rows) < $max_result) {
$max_result = $max_result - count($rows);
$x_loc = $filter_loc ;
if(count($a_loc) > 2) $x_loc = "";
$sql = "select
M_CityID, M_CityName,
M_ProvinceID, M_ProvinceName
from m_city
join m_province on M_CityName like ?
and M_CityIsActive = 'Y'
and M_CityM_ProvinceID= M_ProvinceID
and M_ProvinceIsActive= 'Y'
$x_loc
limit 0,$max_result";
$qry = $this->db->query($sql, [$param["search"]]);
if (!$qry) {
echo json_encode(["status"=>"ERR","message"=>$this->db->error()["message"]]);
exit;
}
$rows = $qry->result_array();
foreach ($rows as $r) {
$result[] = $r;
$idx = count($result) - 1;
$result[$idx]["tag"] = [
$r["M_ProvinceName"],
$r["M_CityName"],
];
$result[$idx]["level"] = 3;
}
}
}
echo json_encode([
"status" => "OK",
"rows" => $result
]);
}
function get_param()
{
$sbody = file_get_contents("php://input");
return json_decode($sbody, true);
}
function search_patient()
{
$this->corss();
$ch = curl_init(
"http://devone.aplikasi.web.id/one-api/mockup/fo/registration_v11/patient/search"
);
$param = $this->get_param();
$payload = json_encode([
"noreg" => "",
"search" => $param["search"],
"current_page" => 1,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type:application/json"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($ch);
$error = curl_errno($ch);
$error_msg = curl_error($ch);
if ($error != 0) {
echo json_encode(["status" => "ERR", "message" => $error_msg]);
exit();
}
echo $resp;
}
function lookup($param = "")
{
$this->corss();
$result = [
"status" => "OK",
"data" => [
["id" => 1, "name" => "Satu"],
["id" => 2, "name" => "Dua"],
["id" => 3, "name" => "Tiga"],
["id" => 4, "name" => "Empat"],
["id" => 5, "name" => "Lima"],
["id" => 6, "name" => "Enam"],
["id" => 7, "name" => "Tujuh"],
["id" => 8, "name" => "Delapan"],
["id" => 9, "name" => "Sembilan"],
],
];
if ($param != "") {
$data = array_filter($result["data"], function ($r) use ($param) {
return strpos($r["name"], $param) >= 0;
});
$result["data"] = $data;
}
echo json_encode($result);
}
}
?>