270 lines
10 KiB
PHP
270 lines
10 KiB
PHP
<?php
|
|
|
|
class Sender extends MY_Controller
|
|
{
|
|
var $db_smartone;
|
|
public function index()
|
|
{
|
|
echo "Doctor API";
|
|
}
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_smartone = $this->load->database("onedev", true);
|
|
}
|
|
function _add_address(&$doc) {
|
|
if (count($doc) == "0") {
|
|
return;
|
|
}
|
|
$doc_ids = "-1";
|
|
foreach($doc as $idx => $d ) {
|
|
$doc_ids .= "," . $d["M_DoctorID"];
|
|
$doc[$idx]["address"] = array();
|
|
}
|
|
$sql = "select M_DoctorAddressID,M_DoctorAddressM_DoctorID,
|
|
M_DoctorAddressDesc
|
|
from
|
|
m_doctoraddress
|
|
where
|
|
M_DoctorAddressM_DoctorID in ( $doc_ids )
|
|
and M_DoctorAddressIsActive = 'Y'";
|
|
$query = $this->db_smartone->query($sql);
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
foreach($rows as $r) {
|
|
$doctorID= $r["M_DoctorAddressM_DoctorID"];
|
|
foreach($doc as $idx => $d) {
|
|
if($d["M_DoctorID"] == $doctorID) {
|
|
$doc[$idx]["address"][] = $r;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$this->sys_error_db("m_doctoraddress ", $this->db_smartone);
|
|
exit;
|
|
}
|
|
}
|
|
public function search_pj() {
|
|
//sipe : M_DoctorPjIsDefault diganti ke M_DoctorPjIsDefaultPJ
|
|
$sql = "select M_DoctorID,
|
|
CONCAT(M_DoctorPrefix, M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix, M_DoctorSufix2, M_DoctorSufix3) M_DoctorName,
|
|
M_DoctorPjIsDefaultPj M_DoctorIsDefaultPJ
|
|
from m_doctor
|
|
join m_doctorpj on M_DoctorPJM_DoctorID = M_DoctorID and M_DoctorPjIsactive = 'Y'
|
|
and M_DoctorPjIsPJ = 'Y'
|
|
where M_DoctorIsActive = 'Y' and
|
|
( M_DoctorPJID is not null ) ";
|
|
$query = $this->db_smartone->query($sql, array("%$search%"));
|
|
$rows = $query->result_array();
|
|
$result = array("total" => count($rows) , "records" => $rows);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
public function get_doctoraddress() {
|
|
|
|
$prm = $this->sys_input;
|
|
$id = $prm['id'];
|
|
$sql = "select M_DoctorAddressID,
|
|
M_DoctorAddressM_DoctorID,
|
|
M_DoctorAddressNote,
|
|
M_DoctorAddressDescription,
|
|
CONCAT(M_DoctorAddressDescription, ' :',M_DoctorAddressNote) as description
|
|
from
|
|
m_doctoraddress
|
|
where
|
|
M_DoctorAddressM_DoctorID = $id
|
|
and M_DoctorAddressIsActive = 'Y'
|
|
ORDER BY M_DoctorAddressDeliveryDefault DESC";
|
|
$query = $this->db_smartone->query($sql);
|
|
$rows = $query->result_array();
|
|
$result = array("total" => count($rows) , "records" => $rows);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
public function get_queueid() {
|
|
|
|
$prm = $this->sys_input;
|
|
$id = $prm['id'];
|
|
$sql = "select queueID as id FROM antrione.queue
|
|
WHERE queueServiceID = 7 AND queueNumber = '{$id}'";
|
|
$query = $this->db_smartone->query($sql);
|
|
$rows = $query->result_array();
|
|
$result = array("total" => count($rows) , "records" => $rows);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
public function search()
|
|
{
|
|
$prm = $this->sys_input;
|
|
|
|
$max_rst = 12;
|
|
$tot_count =0;
|
|
|
|
$q = [
|
|
'search' => '%'
|
|
];
|
|
|
|
if ($prm['search'] != '')
|
|
{
|
|
$q['search'] = "%{$prm['search']}%";
|
|
}
|
|
|
|
// QUERY TOTAL
|
|
|
|
$sql = "select M_DoctorID, M_DoctorIsDefault, IF(M_DoctorPJID IS NULL, 'Y', 'N') M_DoctorIsPJ,
|
|
CONCAT('[ ',M_DoctorCode,' ] ',M_DoctorPrefix, M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix, M_DoctorSufix2, M_DoctorSufix3) as M_DoctorName, fn_fo_delivery_code('DOCTOR', 'EMAIL', 0) as delivery_email_code,
|
|
IF(M_DoctorEmail IS NULL OR M_DoctorEmail = '', 'N', M_DoctorEmailIsDefault) email_default,
|
|
IFNULL( concat('[', group_concat(JSON_OBJECT('description',M_DoctorAddressNote,'M_DoctorAddressNote',M_DoctorAddressNote,'M_DoctorAddressDescription', M_DoctorAddressDescription, 'M_DoctorAddressID', M_DoctorAddressID, 'delivery_default', M_DoctorAddressDeliveryDefault, 'delivery_code', fn_fo_delivery_code('DOCTOR', 'ADDRESS', M_DoctorAddressID)) SEPARATOR ','), ']'), '[]') as address,
|
|
M_DoctorNote
|
|
from m_doctor
|
|
join m_doctoraddress on M_DoctorAddressIsActive = 'Y'
|
|
and M_DoctorAddressM_DoctorID = M_DoctorID
|
|
left join m_doctorpj on M_DoctorPJM_DoctorID = M_DoctorID and M_DoctorPjIsactive = 'Y'
|
|
where M_DoctorIsActive = 'Y'
|
|
and CONCAT('[ ',M_DoctorCode,' ] ',M_DoctorPrefix, M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix, M_DoctorSufix2, M_DoctorSufix3) like ?
|
|
group by M_DoctorID
|
|
limit 30";
|
|
|
|
|
|
|
|
$query = $this->db_smartone->query($sql, array($q['search']));
|
|
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
|
|
foreach ($rows as $k => $v){
|
|
$rows[$k]['address'] = json_decode($v['address']);
|
|
foreach($rows[$k]['address'] as $k_a => $v_a){
|
|
$rows[$k]['address'][$k_a]->description = $rows[$k]['address'][$k_a]->M_DoctorAddressNote." : ".$rows[$k]['address'][$k_a]->M_DoctorAddressDescription;
|
|
}
|
|
}
|
|
|
|
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
|
|
$this->sys_ok($result);
|
|
}
|
|
else {
|
|
$this->sys_error_db("m_doctor rows",$this->db_smartone);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
public function search_()
|
|
{
|
|
$prm = $this->sys_input;
|
|
$search = $prm["search"];
|
|
|
|
$sql = "select count(*) total
|
|
from
|
|
m_doctor
|
|
join (
|
|
select distinct M_DoctorAddressM_DoctorID
|
|
from m_doctoraddress
|
|
where M_DoctorAddressIsActive = 'Y'
|
|
) ma on M_DoctorID = M_DoctorAddressM_DoctorID
|
|
where M_DoctorIsActive = 'Y' and M_DoctorName like ? ";
|
|
$query = $this->db_smartone->query($sql, array("%$search%"));
|
|
$tot_count =0;
|
|
if ($query) {
|
|
$tot_count = $query->result_array()[0]["total"];
|
|
} else {
|
|
$this->sys_error_db("m_patient count", $this->db_smartone);
|
|
exit;
|
|
}
|
|
$sql = "select M_DoctorID,M_DoctorName
|
|
from
|
|
m_doctor
|
|
join (
|
|
select distinct M_DoctorAddressM_DoctorID
|
|
from m_doctoraddress
|
|
where M_DoctorAddressIsActive = 'Y'
|
|
) ma on M_DoctorID = M_DoctorAddressM_DoctorID
|
|
where M_DoctorIsActive = 'Y' and M_DoctorName like ?
|
|
limit 0,10";
|
|
$query = $this->db_smartone->query($sql, array("%$search%"));
|
|
$rows = $query->result_array();
|
|
$this->_add_address($rows);
|
|
$result = array("total" => $tot_count, "records" => $rows);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
public function save()
|
|
{
|
|
$prm = $this->sys_input;
|
|
$prm = $prm['data'];
|
|
|
|
$q = [
|
|
'name' => isset($prm['name']) ? $prm['name'] : '',
|
|
'prefix1' => isset($prm['prefix1']) ? $prm['prefix1'] : '',
|
|
'prefix2' => isset($prm['prefix2']) ? $prm['prefix2'] : '',
|
|
'sufix1' => isset($prm['sufix1']) ? $prm['sufix1'] : '',
|
|
'sufix2' => isset($prm['sufix2']) ? $prm['sufix2'] : '',
|
|
'sufix3' => isset($prm['sufix3']) ? $prm['sufix3'] : '',
|
|
'sex' => isset($prm['sex']) ? $prm['sex'] : '0',
|
|
'hp' => isset($prm['hp']) ? $prm['hp'] : '',
|
|
'note' => isset($prm['note']) ? $prm['note'] : '',
|
|
'address' => isset($prm['address']) ? $prm['address'] : '',
|
|
'province' => isset($prm['province']) ? $prm['province'] : '',
|
|
'city' => isset($prm['city']) ? $prm['city'] : '',
|
|
'district' => isset($prm['district']) ? $prm['district'] : '',
|
|
'village' => isset($prm['village']) ? $prm['village'] : ''
|
|
];
|
|
|
|
$sql = "INSERT INTO m_doctor(M_DoctorPrefix,
|
|
M_DoctorPrefix2,
|
|
M_DoctorName,
|
|
M_DoctorSufix,
|
|
M_DoctorSufix2,
|
|
M_DoctorSufix3,
|
|
M_DoctorM_SexID,
|
|
M_DoctorHP,
|
|
M_DoctorNote)
|
|
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
|
$query = $this->db_smartone->query($sql, [$q['prefix1'], $q['prefix2'], $q['name'], $q['sufix1'], $q['sufix2'], $q['sufix3'], $q['sex'], $q['hp'], $q['note']]);
|
|
|
|
if ($query)
|
|
{
|
|
$id = $this->db_smartone->insert_id();
|
|
|
|
$sql = "INSERT INTO m_doctoraddress(M_DoctorAddressM_DoctorID,
|
|
M_DoctorAddressNote,
|
|
M_DoctorAddressDescription,
|
|
M_DoctorAddressM_KelurahanID)
|
|
VALUES(?, 'Utama', ?, ?)";
|
|
$query = $this->db_smartone->query($sql, [$id, $q['address'], $q['village']]);
|
|
|
|
if ($query)
|
|
{
|
|
$result = $this->get_one($id);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
$this->sys_error_db("DOCTOR SAVE", $this->db_smartone);
|
|
}
|
|
|
|
private function get_one($id)
|
|
{
|
|
$sql = "SELECT M_DoctorID, M_DoctorIsDefault, 'N' M_DoctorIsPJ,
|
|
fn_global_doctor_name(M_DoctorID) as M_DoctorName, M_DoctorName M_DoctorRealName,
|
|
IFNULL( concat('[', group_concat(JSON_OBJECT('M_DoctorAddressNote',M_DoctorAddressNote,'M_DoctorAddressDescription', M_DoctorAddressDescription, 'M_DoctorAddressID', M_DoctorAddressID) SEPARATOR ','), ']'), '[]') as address
|
|
FROM m_doctor
|
|
LEFT JOIN m_doctoraddress ON M_DoctorAddressM_DoctorID = M_DoctorID AND M_DoctorAddressIsActive = 'Y'
|
|
WHERE M_DoctorID = ?";
|
|
$query = $this->db_smartone->query($sql, $id);
|
|
|
|
if ($query)
|
|
{
|
|
$row = $query->result_array();
|
|
foreach ($row as $k => $v)
|
|
$row[$k]['address'] = json_decode($v['address']);
|
|
|
|
$result = array("total" => 1, "records" => $row, "total_display" => 1);
|
|
return $result;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|