add api poli
This commit is contained in:
73
application/controllers/mockup/masterdata/Poli.http
Normal file
73
application/controllers/mockup/masterdata/Poli.http
Normal file
@@ -0,0 +1,73 @@
|
||||
@baseUrl = https://devone.aplikasi.web.id/one-api-lab
|
||||
@token = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJNX1VzZXJJRCI6IjMiLCJNX1VzZXJVc2VybmFtZSI6ImFkbWluICIsIk1fVXNlckdyb3VwRGFzaGJvYXJkIjoib25lLXVpLWxhYlwvdGVzdFwvdnVleFwvb25lLXBhdGllbnQtbGlzdC1iYXJjb2RlLXZ2LTYtY3BvbmVcLyIsIk1fVXNlckRlZmF1bHRUX1NhbXBsZVN0YXRpb25JRCI6IjAiLCJNX1N0YWZmTmFtZSI6IkFCSVRBIEpVV0lUQSBTQVJJIiwiaXNfY291cmllciI6Ik4iLCJ0aW1lX2F1dG9sb2dvdXQiOiIxMDAwMDAwIiwiaXAiOiIxMDMuMy4yMjAuMjIxIiwiYWdlbnQiOiJNb3ppbGxhXC81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXRcLzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZVwvMTQ5LjAuMC4wIFNhZmFyaVwvNTM3LjM2IiwidmVyc2lvbiI6InYyIiwibGFzdC1sb2dpbiI6IjIwMjYtMDYtMjIgMTE6MjM6MjkiLCJNX1NhdGVsbGl0ZUlEIjowfQ.wkQFPGQ52TeceDQARm8auj6jEb159V46BzTZ9NEE_vM
|
||||
@poliId = 1
|
||||
|
||||
### Search Poli
|
||||
POST {{baseUrl}}/mockup/masterdata/poli/search
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": "{{token}}",
|
||||
"search": "",
|
||||
"page": 1,
|
||||
"row_per_page": 10,
|
||||
"order_by": "id",
|
||||
"order": "asc"
|
||||
}
|
||||
|
||||
### Search Poli By Name
|
||||
POST {{baseUrl}}/mockup/masterdata/poli/search
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": "{{token}}",
|
||||
"search": "khitan",
|
||||
"page": 1,
|
||||
"row_per_page": 10,
|
||||
"order_by": "name",
|
||||
"order": "asc"
|
||||
}
|
||||
|
||||
### Get Screening Templates
|
||||
POST {{baseUrl}}/mockup/masterdata/poli/gettemplates
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": "{{token}}"
|
||||
}
|
||||
|
||||
### Add Poli
|
||||
POST {{baseUrl}}/mockup/masterdata/poli/add
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": "{{token}}",
|
||||
"code": "POLI_TEST",
|
||||
"name": "Poli Test",
|
||||
"description": "Poli untuk test API",
|
||||
"satusehat_location_id": "",
|
||||
"screening_template_id": null
|
||||
}
|
||||
|
||||
### Update Poli
|
||||
POST {{baseUrl}}/mockup/masterdata/poli/update
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": "{{token}}",
|
||||
"id": {{poliId}},
|
||||
"code": "POLI_TEST",
|
||||
"name": "Poli Test Update",
|
||||
"description": "Poli untuk test API update",
|
||||
"satusehat_location_id": "",
|
||||
"screening_template_id": null
|
||||
}
|
||||
|
||||
### Delete Poli
|
||||
POST {{baseUrl}}/mockup/masterdata/poli/delete
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"token": "{{token}}",
|
||||
"id": {{poliId}}
|
||||
}
|
||||
323
application/controllers/mockup/masterdata/Poli.php
Normal file
323
application/controllers/mockup/masterdata/Poli.php
Normal file
@@ -0,0 +1,323 @@
|
||||
<?php
|
||||
|
||||
class Poli extends MY_Controller
|
||||
{
|
||||
var $db_oneklinik;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->db_oneklinik = $this->load->database("onedev", true);
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
echo "POLI API";
|
||||
}
|
||||
|
||||
public function search()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$prm = $this->sys_input;
|
||||
$search = isset($prm['search']) ? trim($prm['search']) : (isset($prm['name']) ? trim($prm['name']) : '');
|
||||
$like = '%' . $search . '%';
|
||||
$row_per_page = isset($prm['row_per_page']) && intval($prm['row_per_page']) > 0 ? intval($prm['row_per_page']) : 10;
|
||||
$page = 1;
|
||||
if (isset($prm['page']) && intval($prm['page']) > 0) {
|
||||
$page = intval($prm['page']);
|
||||
} elseif (isset($prm['current_page']) && intval($prm['current_page']) > 0) {
|
||||
$page = intval($prm['current_page']);
|
||||
}
|
||||
$offset = ($page - 1) * $row_per_page;
|
||||
|
||||
$allowed_order_by = array(
|
||||
'id' => 'cu.M_ClinicUnitID',
|
||||
'code' => 'cu.M_ClinicUnitCode',
|
||||
'name' => 'cu.M_ClinicUnitName',
|
||||
'description' => 'cu.M_ClinicUnitDescription',
|
||||
'screening_template_name' => 'st.M_ScreeningTemplateName'
|
||||
);
|
||||
$order_by = 'cu.M_ClinicUnitID';
|
||||
if (isset($prm['order_by']) && isset($allowed_order_by[$prm['order_by']])) {
|
||||
$order_by = $allowed_order_by[$prm['order_by']];
|
||||
}
|
||||
$order = isset($prm['order']) && strtolower($prm['order']) === 'desc' ? 'DESC' : 'ASC';
|
||||
|
||||
$sql_count = "SELECT COUNT(*) AS total
|
||||
FROM one_klinik.m_clinic_unit cu
|
||||
LEFT JOIN one_klinik.m_screening_template st
|
||||
ON st.M_ScreeningTemplateID = cu.M_ClinicUnitM_ScreeningTemplateID
|
||||
AND st.M_ScreeningTemplateIsActive = 'Y'
|
||||
WHERE cu.M_ClinicUnitIsActive = 'Y'
|
||||
AND (
|
||||
cu.M_ClinicUnitCode LIKE ?
|
||||
OR cu.M_ClinicUnitName LIKE ?
|
||||
OR IFNULL(cu.M_ClinicUnitDescription, '') LIKE ?
|
||||
OR IFNULL(cu.M_ClinicUnitSatusehatLocationID, '') LIKE ?
|
||||
OR IFNULL(st.M_ScreeningTemplateName, '') LIKE ?
|
||||
)";
|
||||
$query_count = $this->db_oneklinik->query($sql_count, array($like, $like, $like, $like, $like));
|
||||
if (!$query_count) {
|
||||
$this->sys_error_db("m_clinic_unit count", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
|
||||
$total_filter = intval($query_count->row()->total);
|
||||
$total_page = ceil($total_filter / $row_per_page);
|
||||
|
||||
$sql = "SELECT
|
||||
cu.M_ClinicUnitID AS id,
|
||||
cu.M_ClinicUnitCode AS code,
|
||||
cu.M_ClinicUnitName AS name,
|
||||
cu.M_ClinicUnitDescription AS description,
|
||||
cu.M_ClinicUnitSatusehatLocationID AS satusehat_location_id,
|
||||
cu.M_ClinicUnitM_ScreeningTemplateID AS screening_template_id,
|
||||
st.M_ScreeningTemplateCode AS screening_template_code,
|
||||
st.M_ScreeningTemplateName AS screening_template_name,
|
||||
cu.M_ClinicUnitIsActive AS is_active,
|
||||
cu.M_ClinicUnitCreated AS created,
|
||||
cu.M_ClinicUnitLastUpdated AS last_updated
|
||||
FROM one_klinik.m_clinic_unit cu
|
||||
LEFT JOIN one_klinik.m_screening_template st
|
||||
ON st.M_ScreeningTemplateID = cu.M_ClinicUnitM_ScreeningTemplateID
|
||||
AND st.M_ScreeningTemplateIsActive = 'Y'
|
||||
WHERE cu.M_ClinicUnitIsActive = 'Y'
|
||||
AND (
|
||||
cu.M_ClinicUnitCode LIKE ?
|
||||
OR cu.M_ClinicUnitName LIKE ?
|
||||
OR IFNULL(cu.M_ClinicUnitDescription, '') LIKE ?
|
||||
OR IFNULL(cu.M_ClinicUnitSatusehatLocationID, '') LIKE ?
|
||||
OR IFNULL(st.M_ScreeningTemplateName, '') LIKE ?
|
||||
)
|
||||
ORDER BY {$order_by} {$order}
|
||||
LIMIT ? OFFSET ?";
|
||||
$query = $this->db_oneklinik->query($sql, array($like, $like, $like, $like, $like, $row_per_page, $offset));
|
||||
if (!$query) {
|
||||
$this->sys_error_db("m_clinic_unit select", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
|
||||
$rows = $query->result_array();
|
||||
$this->sys_ok(array(
|
||||
"total" => $total_page,
|
||||
"total_filter" => $total_filter,
|
||||
"records" => $rows
|
||||
));
|
||||
} catch (Exception $exc) {
|
||||
$this->sys_error($exc->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function gettemplates()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql = "SELECT
|
||||
M_ScreeningTemplateID AS id,
|
||||
M_ScreeningTemplateCode AS code,
|
||||
M_ScreeningTemplateName AS name,
|
||||
M_ScreeningTemplateDescription AS description
|
||||
FROM one_klinik.m_screening_template
|
||||
WHERE M_ScreeningTemplateIsActive = 'Y'
|
||||
ORDER BY M_ScreeningTemplateName ASC";
|
||||
$query = $this->db_oneklinik->query($sql);
|
||||
if (!$query) {
|
||||
$this->sys_error_db("m_screening_template select", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
|
||||
$rows = $query->result_array();
|
||||
$this->sys_ok(array("total" => count($rows), "records" => $rows));
|
||||
} catch (Exception $exc) {
|
||||
$this->sys_error($exc->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function add()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$prm = $this->sys_input;
|
||||
$code = isset($prm['code']) ? trim($prm['code']) : '';
|
||||
$name = isset($prm['name']) ? trim($prm['name']) : '';
|
||||
$description = isset($prm['description']) ? trim($prm['description']) : null;
|
||||
$satusehat_location_id = isset($prm['satusehat_location_id']) ? trim($prm['satusehat_location_id']) : null;
|
||||
$screening_template_id = isset($prm['screening_template_id']) && $prm['screening_template_id'] !== '' ? intval($prm['screening_template_id']) : null;
|
||||
$userid = $this->sys_user["M_UserID"];
|
||||
|
||||
if ($code === '' || $name === '') {
|
||||
$this->sys_error("code and name are mandatory");
|
||||
exit;
|
||||
}
|
||||
|
||||
$duplicate = $this->db_oneklinik->query(
|
||||
"SELECT COUNT(*) AS total
|
||||
FROM one_klinik.m_clinic_unit
|
||||
WHERE M_ClinicUnitCode = ?
|
||||
OR (M_ClinicUnitIsActive = 'Y' AND M_ClinicUnitName = ?)",
|
||||
array($code, $name)
|
||||
);
|
||||
if (!$duplicate) {
|
||||
$this->sys_error_db("m_clinic_unit duplicate check", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
if (intval($duplicate->row()->total) > 0) {
|
||||
$this->sys_ok(array(
|
||||
"total" => -1,
|
||||
"errors" => array(array("field" => "code", "msg" => "Kode atau nama sudah ada")),
|
||||
"records" => 0
|
||||
));
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO one_klinik.m_clinic_unit (
|
||||
M_ClinicUnitCode,
|
||||
M_ClinicUnitName,
|
||||
M_ClinicUnitDescription,
|
||||
M_ClinicUnitSatusehatLocationID,
|
||||
M_ClinicUnitM_ScreeningTemplateID,
|
||||
M_ClinicUnitUserID,
|
||||
M_ClinicUnitCreated,
|
||||
M_ClinicUnitLastUpdated
|
||||
) VALUES (?, ?, ?, ?, ?, ?, NOW(), NOW())";
|
||||
$query = $this->db_oneklinik->query($sql, array(
|
||||
$code,
|
||||
$name,
|
||||
$description,
|
||||
$satusehat_location_id,
|
||||
$screening_template_id,
|
||||
$userid
|
||||
));
|
||||
if (!$query) {
|
||||
$this->sys_error_db("m_clinic_unit insert", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
|
||||
$this->sys_ok(array(
|
||||
"total" => 1,
|
||||
"records" => array("xid" => $this->db_oneklinik->insert_id())
|
||||
));
|
||||
} catch (Exception $exc) {
|
||||
$this->sys_error($exc->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function update()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$prm = $this->sys_input;
|
||||
$id = isset($prm['id']) ? intval($prm['id']) : 0;
|
||||
$code = isset($prm['code']) ? trim($prm['code']) : '';
|
||||
$name = isset($prm['name']) ? trim($prm['name']) : '';
|
||||
$description = isset($prm['description']) ? trim($prm['description']) : null;
|
||||
$satusehat_location_id = isset($prm['satusehat_location_id']) ? trim($prm['satusehat_location_id']) : null;
|
||||
$screening_template_id = isset($prm['screening_template_id']) && $prm['screening_template_id'] !== '' ? intval($prm['screening_template_id']) : null;
|
||||
$userid = $this->sys_user["M_UserID"];
|
||||
|
||||
if (!$id || $code === '' || $name === '') {
|
||||
$this->sys_error("id, code and name are mandatory");
|
||||
exit;
|
||||
}
|
||||
|
||||
$duplicate = $this->db_oneklinik->query(
|
||||
"SELECT COUNT(*) AS total
|
||||
FROM one_klinik.m_clinic_unit
|
||||
WHERE M_ClinicUnitID <> ?
|
||||
AND (M_ClinicUnitCode = ?
|
||||
OR (M_ClinicUnitIsActive = 'Y' AND M_ClinicUnitName = ?))",
|
||||
array($id, $code, $name)
|
||||
);
|
||||
if (!$duplicate) {
|
||||
$this->sys_error_db("m_clinic_unit duplicate check", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
if (intval($duplicate->row()->total) > 0) {
|
||||
$this->sys_ok(array(
|
||||
"total" => -1,
|
||||
"errors" => array(array("field" => "code", "msg" => "Kode atau nama sudah ada")),
|
||||
"records" => 0
|
||||
));
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql = "UPDATE one_klinik.m_clinic_unit SET
|
||||
M_ClinicUnitCode = ?,
|
||||
M_ClinicUnitName = ?,
|
||||
M_ClinicUnitDescription = ?,
|
||||
M_ClinicUnitSatusehatLocationID = ?,
|
||||
M_ClinicUnitM_ScreeningTemplateID = ?,
|
||||
M_ClinicUnitUserID = ?,
|
||||
M_ClinicUnitLastUpdated = NOW()
|
||||
WHERE M_ClinicUnitID = ?
|
||||
AND M_ClinicUnitIsActive = 'Y'";
|
||||
$query = $this->db_oneklinik->query($sql, array(
|
||||
$code,
|
||||
$name,
|
||||
$description,
|
||||
$satusehat_location_id,
|
||||
$screening_template_id,
|
||||
$userid,
|
||||
$id
|
||||
));
|
||||
if (!$query) {
|
||||
$this->sys_error_db("m_clinic_unit update", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
|
||||
$this->sys_ok(array("total" => 1, "records" => array("xid" => $id)));
|
||||
} catch (Exception $exc) {
|
||||
$this->sys_error($exc->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
|
||||
$prm = $this->sys_input;
|
||||
$id = isset($prm['id']) ? intval($prm['id']) : 0;
|
||||
if (!$id) {
|
||||
$this->sys_error("id is mandatory");
|
||||
exit;
|
||||
}
|
||||
$userid = $this->sys_user["M_UserID"];
|
||||
|
||||
$sql = "UPDATE one_klinik.m_clinic_unit SET
|
||||
M_ClinicUnitIsActive = 'N',
|
||||
M_ClinicUnitUserID = ?,
|
||||
M_ClinicUnitLastUpdated = NOW()
|
||||
WHERE M_ClinicUnitID = ?";
|
||||
$query = $this->db_oneklinik->query($sql, array($userid, $id));
|
||||
if (!$query) {
|
||||
$this->sys_error_db("m_clinic_unit delete", $this->db_oneklinik);
|
||||
exit;
|
||||
}
|
||||
|
||||
$this->sys_ok(array("total" => 1, "records" => array("xid" => $id)));
|
||||
} catch (Exception $exc) {
|
||||
$this->sys_error($exc->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user