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