295 lines
10 KiB
PHP
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() )
|
|
);
|
|
}
|
|
}
|
|
}
|