Files
2026-04-27 10:26:26 +07:00

295 lines
10 KiB
PHP

<?php
class Mcu_data extends MY_Controller
{
function __construct()
{
parent::__construct();
}
function generateToken(){
$param = $this->sys_input;
$xtype = $param['type'];
//$user['ip'] = $_SERVER['REMOTE_ADDR'];
//$user['agent'] = $_SERVER['HTTP_USER_AGENT'];
if($xtype){
$code = $this->generate_string($permitted_chars, 10);
$token = str_shuffle(MD5(microtime()));
try {
$sql = "update token_mcu_api SET TokenMcuApiIsActive = 'N' WHERE TokenMcuApiType = ?";
$this->db->query($sql, array($xtype));
$sql = "insert into token_mcu_api(TokenMcuApiType,TokenMcuApiToken,TokenMcuApiCreated)
values(?,?,NOW())";
$this->db->query($sql, array($xtype,$token));
echo json_encode(
array("status" => "OK" , "data" => $token , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
else{
echo json_encode(
array("status" => "ERR" , "data" => '' , "message" => "Belum ada parameter type")
);
}
}
function check(){
$param = $this->sys_input;
$no_reg = $param['no_reg'];
$patient = [];
$test = [];
$status_ready = "N";
$sql= " SELECT *
FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
WHERE
T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderLabNumberExt = '{$no_reg}' LIMIT 1 ";
$get_nolab = $this->db->query($sql)->row_array();
if($get_nolab){
$patient['noreg'] = $get_nolab['T_OrderHeaderLabNumber'];
$patient['noreg_ext'] = $get_nolab['T_OrderHeaderLabNumberExt'];
$patient['name'] = $get_nolab['M_PatientName'];
$sql= " SELECT T_OrderDetailT_TestSasCode as test_code,
T_OrderDetailT_TestName as test_name,
IF(ISNULL(So_ResultEntryID),'N','Y') as status_ready
FROM t_orderheader
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND
T_OrderDetailT_TestID IN (2562,2566,2563,2584,2564,3327,2565,2567,2568,2598,3340,3342) AND
T_OrderDetailIsActive = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderHeaderID = So_ResultEntryT_OrderHeaderID AND
So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
WHERE
T_OrderHeaderLabNumber = '{$patient['noreg']}' AND T_OrderHeaderIsActive = 'Y'
LIMIT 1";
$check_ready = $this->db->query($sql)->result_array();
if($check_ready){
$status_ready = "Y";
}
$sql= " SELECT T_OrderDetailT_TestSasCode as test_code,
T_OrderDetailT_TestName as test_name
FROM t_orderheader
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND
T_OrderDetailT_TestID IN (2562,2566,2563,2584,2564,3327,2565,2567,2568,2598,3340,3342) AND
T_OrderDetailIsActive = 'Y'
WHERE
T_OrderHeaderLabNumber = '{$patient['noreg']}' AND T_OrderHeaderIsActive = 'Y'
GROUP BY T_OrderDetailID";
$get_test = $this->db->query($sql)->result_array();
if($get_test){
$test = $get_test;
}
echo json_encode(
array("status" => "OK" , "ready" => $status_ready, "patient"=>$patient, "test"=>$test, "message" => "")
);
}else{
echo json_encode(
array("status" => "OK" , "ready" => $status_ready, "patient"=>$patient, "test"=>$test , "message" => "Belum melakukan registrasi")
);
}
}
function generate_string($input, $strength = 4) {
$input_length = strlen($input);
$random_string = '';
for($i = 0; $i < $strength; $i++) {
$random_character = $input[mt_rand(0, $input_length - 1)];
$random_string .= $random_character;
}
return $random_string;
}
function save(){
$prm = $this->sys_input;
$userid = -1;
$rst = array();
$sql ="SELECT * FROM token_mcu_api WHERE TokenMcuApiType = 'FISIK' AND TokenMcuApiToken = '{$prm['token']}' AND TokenMcuApiIsActive = 'Y'";
//echo $sql;
$check_token = $this->db->query($sql)->row_array();
if($check_token){
$sql= " SELECT *
FROM t_orderheader
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND
T_OrderDetailT_TestID IN (2562,2566,2563,2584,2564,3327,2565,2567,2568,2598,3340,3342) AND
T_OrderDetailIsActive = 'Y'
JOIN so_resultentry ON So_ResultEntryT_OrderHeaderID = So_ResultEntryT_OrderHeaderID AND
So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
WHERE
T_OrderHeaderLabNumberExt = '{$prm['trx_numbering']}' LIMIT 1 ";
$data_row = $this->db->query($sql)->row_array();
if($prm['template'] == 'UMUM' || $prm['template'] == 'UMUM_K3' || $prm['template'] == 'UMUM_KONSUL'){
$riwayats = str_replace('\'', '\\\'', json_encode($prm["riwayats"],JSON_UNESCAPED_UNICODE | JSON_HEX_APOS | JSON_HEX_QUOT));
$riwayats = addslashes(str_replace('\"', '\\\"',$riwayats));
$sql = "INSERT INTO so_resultentry_fisik_umum (
So_ResultEntryFisikUmumSo_ResultEntryID,
So_ResultEntryFisikUmumM_LangID,
So_ResultEntryFisikUmumType,
So_ResultEntryFisikUmumDetails,
So_ResultEntryFisikUmumUserID,
So_ResultEntryFisikUmumCreated
)
VALUES(
{$data_row['So_ResultEntryID']},
{$prm['language_id']},
'riwayat',
'{$riwayats}',
{$userid},
NOW()
)
ON DUPLICATE KEY UPDATE
So_ResultEntryFisikUmumDetails = '{$riwayats}',
So_ResultEntryFisikUmumUserID = {$userid} ";
$rst = $this->db->query($sql);
//echo $sql;
$fisiks = str_replace('\'', '\\\'', json_encode($prm["fisiks"],JSON_UNESCAPED_UNICODE | JSON_HEX_APOS | JSON_HEX_QUOT));
$fisiks = addslashes(str_replace('\"', '\\\"',$fisiks));
$sql = "INSERT INTO so_resultentry_fisik_umum (
So_ResultEntryFisikUmumSo_ResultEntryID,
So_ResultEntryFisikUmumM_LangID,
So_ResultEntryFisikUmumType,
So_ResultEntryFisikUmumDetails,
So_ResultEntryFisikUmumUserID,
So_ResultEntryFisikUmumCreated
)
VALUES(
{$data_row['So_ResultEntryID']},
{$prm['language_id']},
'fisik',
'{$fisiks}',
{$userid},
NOW()
)
ON DUPLICATE KEY UPDATE
So_ResultEntryFisikUmumDetails = '{$fisiks}',
So_ResultEntryFisikUmumUserID = {$userid} ";
$rst = $this->db->query($sql);
//echo $sql;
$umum_saran = $prm['umum_saran'];
$sql = "INSERT INTO so_resultentry_fisik_umum (
So_ResultEntryFisikUmumSo_ResultEntryID,
So_ResultEntryFisikUmumM_LangID,
So_ResultEntryFisikUmumType,
So_ResultEntryFisikUmumDetails,
So_ResultEntryFisikUmumUserID,
So_ResultEntryFisikUmumCreated
)
VALUES(
{$data_row['So_ResultEntryID']},
{$prm['language_id']},
'saran',
'{$umum_saran}',
{$userid},
NOW()
)
ON DUPLICATE KEY UPDATE
So_ResultEntryFisikUmumDetails = '{$umum_saran}',
So_ResultEntryFisikUmumUserID = {$userid} ";
//echo $sql;
$rst = $this->db->query($sql);
}
if($prm['template'] == 'UMUM_K3'){
$k3s = str_replace('\'', '\\\'', json_encode($prm["k3s"],JSON_UNESCAPED_UNICODE | JSON_HEX_APOS | JSON_HEX_QUOT));
$k3s = addslashes(str_replace('\"', '\\\"',$k3s));
$sql = "INSERT INTO so_resultentry_fisik_umum (
So_ResultEntryFisikUmumSo_ResultEntryID,
So_ResultEntryFisikUmumM_LangID,
So_ResultEntryFisikUmumType,
So_ResultEntryFisikUmumDetails,
So_ResultEntryFisikUmumUserID,
So_ResultEntryFisikUmumCreated
)
VALUES(
{$data_row['So_ResultEntryID']},
{$prm['language_id']},
'k3',
'{$k3s}',
{$userid},
NOW()
)
ON DUPLICATE KEY UPDATE
So_ResultEntryFisikUmumDetails = '{$k3s}',
So_ResultEntryFisikUmumUserID = {$userid} ";
$rst = $this->db->query($sql);
//echo $query;
}
if($prm['template'] == 'UMUM_KONSUL'){
$konsul = $prm['konsul'];
foreach($konsul as $k => $v){
$sql = "INSERT INTO so_resultentry_fisik_umum (
So_ResultEntryFisikUmumSo_ResultEntryID,
So_ResultEntryFisikUmumM_LangID,
So_ResultEntryFisikUmumType,
So_ResultEntryFisikUmumDetails,
So_ResultEntryFisikUmumUserID,
So_ResultEntryFisikUmumCreated
)
VALUES(
{$data_row['So_ResultEntryID']},
{$prm['language_id']},
'{$v['type']}',
'{$v['result']}',
{$userid},
NOW()
)
ON DUPLICATE KEY UPDATE
So_ResultEntryFisikUmumDetails = '{$v['result']}',
So_ResultEntryFisikUmumUserID = {$userid} ";
//echo $sql;
$rst = $this->db->query($sql);
}
}
echo json_encode(
array("status" => "OK" , "data" => "", "message" => "")
);
}else{
echo json_encode(
array("status" => "ERR" , "data" => "", "message" => "Maaf token invalid")
);
}
}
function raw() {
$param = $this->sys_input;
try {
$instrumentID = $param["instrumentID"];
$data = $param["data"];
$sql = "insert into itf_raw(itf_RawNat_InstrumentID,itf_RawData)
values(?,?)";
$this->db_one->query($sql, array($instrumentID, base64_decode($data)));
echo json_encode(
array("status" => "OK" , "id" => $this->db_one->insert_id() , "message" => "")
);
} catch(exception $e) {
echo json_encode(
array("status" => "ERR" , "id" => 0, "message" => $e.message() )
);
}
}
}