2000 lines
82 KiB
PHP
2000 lines
82 KiB
PHP
<?php
|
|
class Resulttranslate extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
var $load;
|
|
var $kesimpulanfisik;
|
|
|
|
public function index()
|
|
{
|
|
echo "CPONE RESUME INDIVIDU API";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
// $this->load->library("SsPriceMou");
|
|
}
|
|
public function getsetup()
|
|
{
|
|
try {
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
$user = $this->sys_user;
|
|
$branchID = $user['M_BranchID'];
|
|
$sql = "SELECT * FROM mgm_mcu WHERE Mgm_McuIsActive = 'Y' AND Mgm_McuM_BranchID IN ({$branchID}, 100)";
|
|
$qry = $this->db_onedev->query($sql, []);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$last_qry = $this->db_onedev->last_query();
|
|
$message['last_qry'] = $last_qry;
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
$data = $qry->result_array();
|
|
$result = [
|
|
"records" => $data,
|
|
];
|
|
$this->sys_ok($result);
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
function search()
|
|
{
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$user = $this->sys_user;
|
|
$branchID = $user['M_BranchID'];
|
|
$search = '%' . $prm['search'] . '%';
|
|
$page = $prm["page"];
|
|
$startDate = $prm["startDate"];
|
|
$endDate = $prm["endDate"];
|
|
$setupID = $prm["setupID"];
|
|
$ROW_PER_PAGE = 20;
|
|
$start_offset = 0;
|
|
// print_r($prm);
|
|
|
|
if (isset($prm["page"])) {
|
|
if (
|
|
is_numeric($prm["page"]) && $prm["page"] > 0
|
|
) {
|
|
$start_offset = ($page - 1) * $ROW_PER_PAGE;
|
|
}
|
|
}
|
|
$sql = "SELECT
|
|
COUNT(T_OrderHeaderID) AS total
|
|
FROM t_orderheader
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
AND T_OrderHeaderM_BranchID = {$branchID}
|
|
JOIN corporate
|
|
ON T_OrderHeaderCorporateID = CorporateID
|
|
JOIN m_branch ON T_OrderHeaderM_BranchID = M_BranchID
|
|
LEFT JOIN m_title
|
|
ON M_PatientM_TitleID = M_TitleID
|
|
WHERE (DATE_FORMAT(T_OrderHeaderDate, '%Y-%m-%d') BETWEEN ? AND ?)
|
|
AND (M_PatientName LIKE ? OR T_OrderHeaderLabNumber LIKE ?)
|
|
AND T_OrderHeaderMgm_McuID = ?
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
ORDER BY T_OrderHeaderLabNumber
|
|
";
|
|
$query = $this->db_onedev->query($sql, [$startDate, $endDate, $search, $search, $setupID]);
|
|
if (!$query) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
$totalPage = $query->row_array()['total'];
|
|
$sql = "SELECT
|
|
T_OrderHeaderID AS orderID,
|
|
IFNULL(Mcu_ResumeStatus, 'NEW') as status,
|
|
T_OrderHeaderM_BranchID AS branchID,
|
|
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y') AS orderDate,
|
|
T_OrderHeaderLabNumber AS labNumber,
|
|
T_OrderHeaderM_PatientID AS patientID,
|
|
T_OrderHeaderCorporateID AS corporateID,
|
|
T_OrderHeaderMgm_McuID AS setupID,
|
|
UPPER(T_OrderHeaderM_PatientAge) AS patientAge,
|
|
M_PatientNoReg AS patientReg,
|
|
M_PatientName AS patientName,
|
|
UPPER(CONCAT(IF(ISNULL(M_TitleName),'',CONCAT(M_TitleName,'.')),
|
|
' ',
|
|
IFNULL(M_PatientPrefix,''),
|
|
' ',
|
|
M_PatientName,
|
|
' ',
|
|
IFNULL(M_PatientSuffix,''))) AS patientFullname,
|
|
CASE
|
|
WHEN LOWER(M_PatientGender) = 'male' THEN 'LAKI-LAKI'
|
|
WHEN LOWER(M_PatientGender) = 'female' THEN 'PEREMPUAN'
|
|
END patientGender,
|
|
M_PatientPhoto AS patientFoto,
|
|
M_PatientPhotoThumb AS patientFotoThumb,
|
|
CorporateCode AS corporateCode,
|
|
UPPER(CorporateName) AS corporateName,
|
|
M_BranchCode AS branchID,
|
|
M_BranchName AS branchName
|
|
FROM t_orderheader
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
AND T_OrderHeaderM_BranchID = {$branchID}
|
|
JOIN corporate
|
|
ON T_OrderHeaderCorporateID = CorporateID
|
|
JOIN m_branch ON T_OrderHeaderM_BranchID = M_BranchID
|
|
LEFT JOIN m_title
|
|
ON M_PatientM_TitleID = M_TitleID
|
|
LEFT JOIN mcu_resume
|
|
ON T_OrderHeaderID = Mcu_ResumeT_OrderHeaderID
|
|
AND Mcu_ResumeIsActive = 'Y'
|
|
WHERE (DATE_FORMAT(T_OrderHeaderDate, '%Y-%m-%d') BETWEEN ? AND ?)
|
|
AND (M_PatientName LIKE ? OR T_OrderHeaderLabNumber LIKE ?)
|
|
AND T_OrderHeaderMgm_McuID = ?
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
ORDER BY T_OrderHeaderLabNumber
|
|
LIMIT ? OFFSET ? ";
|
|
$query = $this->db_onedev->query($sql, [$startDate, $endDate, $search, $search, $setupID, $ROW_PER_PAGE, $start_offset]);
|
|
if (!$query) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
// echo $this->db_onedev->last_query();
|
|
$result = [
|
|
"total" => ceil($totalPage / $ROW_PER_PAGE),
|
|
"records" => $query->result_array()
|
|
];
|
|
$this->sys_ok($result);
|
|
}
|
|
public function getDetail()
|
|
{
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$orderid = $prm['orderid'];
|
|
$lang = $prm['lang'];
|
|
|
|
// GET NONLAB & FISIK
|
|
$sql = "SELECT
|
|
T_OrderDetailT_OrderHeaderID AS orderID,
|
|
T_OrderDetailID AS orderDetailID,
|
|
T_OrderDetailT_TestID AS testID,
|
|
T_OrderDetailT_TestCode AS testCode,
|
|
T_OrderDetailT_TestSasCode AS testSasCode,
|
|
Group_ResultResumeMcu ,
|
|
T_OrderDetailT_TestName AS testName,
|
|
T_TestNat_TestID AS natTestID,
|
|
So_ResultEntryID as resultEntryID,
|
|
So_ResultEntryStatus as resultEntryStatus,
|
|
So_ResultEntryNonlab_TemplateID as templateID,
|
|
So_ResultEntryNonlab_TemplateName as templateName,
|
|
T_OrderHeaderM_PatientID as patientID,
|
|
M_PatientOldPID as patientOldID
|
|
FROM t_orderdetail
|
|
JOIN group_resultdetail
|
|
ON T_OrderDetailT_TestID = Group_ResultDetailT_TestID
|
|
AND Group_ResultDetailIsActive ='Y'
|
|
AND T_OrderDetailT_OrderHeaderID = ?
|
|
AND T_OrderDetailIsActive = 'Y'
|
|
AND T_OrderDetailT_TestIsResult = 'Y'
|
|
JOIN group_result
|
|
ON Group_ResultID = Group_ResultDetailGroup_ResultID
|
|
AND Group_ResultResumeMcu = 'FISIK'
|
|
JOIN t_test
|
|
ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN so_resultentry
|
|
ON T_OrderDetailT_OrderHeaderID = So_ResultEntryT_OrderHeaderID
|
|
AND T_OrderDetailID =So_ResultEntryT_OrderDetailID
|
|
-- AND So_ResultEntryStatus = 'VAL1'
|
|
AND So_ResultEntryIsActive = 'Y'
|
|
JOIN t_orderheader
|
|
ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN m_patient
|
|
on T_OrderHeaderM_PatientID = M_PatientID
|
|
GROUP BY T_TestID;";
|
|
$query = $this->db_onedev->query($sql, [$orderid]);
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get detail nonlab");
|
|
exit;
|
|
}
|
|
$rstNonlab = $query->result_array();
|
|
|
|
|
|
//pecah nonlab dan fisik
|
|
|
|
$fisik = array();
|
|
for ($i = 0; $i < count($rstNonlab); $i++) {
|
|
$data = $rstNonlab[$i];
|
|
|
|
|
|
if (
|
|
$data['templateName'] == "Fisik Umum" ||
|
|
$data['templateName'] == "Fisik Umum K3" ||
|
|
$data['templateName'] == "Fisik Umum Konsul"
|
|
) {
|
|
$rst = $this->getFisikUmum($data['resultEntryID'], 'N', $lang);
|
|
$data['detail'] = $rst['finalResult'];
|
|
array_push($fisik, $data);
|
|
}
|
|
}
|
|
//Data Pasien OLD
|
|
|
|
$sql = "SELECT
|
|
REG_NO,
|
|
PATIENT_ID,
|
|
PATIENT_NAME
|
|
FROM t_orderheader
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
AND T_OrderHeaderID = ?
|
|
JOIN x_adm_rekap_patient
|
|
ON M_PatientOldPID = PATIENT_ID
|
|
";
|
|
$query = $this->db_onedev->query($sql, [$orderid]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get detail fisik old organ");
|
|
exit;
|
|
}
|
|
$dataPatientOld = $query->row_array();
|
|
//FISIK ORGAN
|
|
|
|
$sql = "SELECT
|
|
T_OrderHeaderID,
|
|
M_PatientID,
|
|
M_PatientOldPID ,
|
|
M_PatientName,
|
|
a.REG_NO,
|
|
b.REG_NO,
|
|
b.telinga,
|
|
b.hidung,
|
|
b.tenggorokan,
|
|
b.rongga_mulut_gigi,
|
|
b.jantung,
|
|
b.paru,
|
|
b.abdomen,
|
|
b.ginjal,
|
|
b.hernia,
|
|
b.kulit,
|
|
b.anogenital,
|
|
b.extremitas,
|
|
b.tulang_belakang,
|
|
b.refleks_fisiologis,
|
|
b.refleks_patologis,
|
|
b.suhu,
|
|
b.stage,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Telinga
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Telinga, $lang), '')
|
|
ELSE 'xels'
|
|
END AS telinga_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Hidung
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Hidung, $lang), '')
|
|
ELSE 'xels'
|
|
END AS hidung_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Tenggorokan
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Tenggorokan, $lang), '')
|
|
ELSE 'xels'
|
|
END AS tenggorokan_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Rongga_Mulut_Gigi
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Rongga_Mulut_Gigi, $lang), '')
|
|
ELSE 'xels'
|
|
END AS rongga_mulut_gigi_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Jantung
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Jantung, $lang), '')
|
|
ELSE 'xels'
|
|
END AS jantung_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Paru
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Paru, $lang), '')
|
|
ELSE 'xels'
|
|
END AS paru_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Abdomen
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Abdomen, $lang), '')
|
|
ELSE 'xels'
|
|
END AS abdomen_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Ginjal
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Ginjal, $lang), '')
|
|
ELSE 'xels'
|
|
END AS ginjal_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Hernia
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Hernia, $lang), '')
|
|
ELSE 'xels'
|
|
END AS hernia_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Kulit
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Kulit, $lang), '')
|
|
ELSE 'xels'
|
|
END AS kulit_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Anogenital
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Anogenital, $lang), '')
|
|
ELSE 'xels'
|
|
END AS anogenital_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Extremitas
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Extremitas, $lang), '')
|
|
ELSE 'xels'
|
|
END AS extremitas_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Tulang_belakang
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Tulang_belakang, $lang), '')
|
|
ELSE 'xels'
|
|
END AS tulang_belakang_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Refleks_Fisiologis
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Refleks_Fisiologis, $lang), '')
|
|
ELSE 'xels'
|
|
END AS refleks_fisiologis_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Refleks_Patologis
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Refleks_Patologis, $lang), '')
|
|
ELSE 'xels'
|
|
END AS refleks_patologis_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Suhu
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word(b.Suhu, $lang), '')
|
|
ELSE 'xels'
|
|
END AS suhu_eng
|
|
FROM t_orderheader
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
AND T_OrderHeaderID = ?
|
|
JOIN x_adm_rekap_patient a
|
|
ON M_PatientOldPID = PATIENT_ID
|
|
JOIN x_adm_rekap_fisik_organ b
|
|
ON a.REG_NO = b.REG_NO
|
|
LEFT JOIN x_adm_rekap_fisik_organ_translate c
|
|
ON a.REG_NO = c.REG_NO ";
|
|
$query = $this->db_onedev->query($sql, [$orderid]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get detail fisik old organ");
|
|
exit;
|
|
}
|
|
// echo $this->db_onedev->last_query();
|
|
$rstFisikOrgan = $query->row_array();
|
|
|
|
|
|
// Initialize result array
|
|
$resultFisikOrgan = [];
|
|
|
|
// List of base field names (without _eng suffix)
|
|
$baseFields = [
|
|
'telinga',
|
|
'hidung',
|
|
'tenggorokan',
|
|
'rongga_mulut_gigi',
|
|
'jantung',
|
|
'paru',
|
|
'abdomen',
|
|
'ginjal',
|
|
'hernia',
|
|
'kulit',
|
|
'anogenital',
|
|
'extremitas',
|
|
'tulang_belakang',
|
|
'refleks_fisiologis',
|
|
'refleks_patologis',
|
|
'suhu',
|
|
|
|
];
|
|
|
|
// Create paired arrays
|
|
foreach ($baseFields as $field) {
|
|
$engField = $field . '_eng';
|
|
if (isset($rstFisikOrgan[$field]) || isset($rstFisikOrgan[$engField])) {
|
|
$resultFisikOrgan[] = [
|
|
"name" => ucfirst(str_replace('_', ' ', $field)), // Menghilangkan underscore di name
|
|
"field" => $field,
|
|
'result' => $rstFisikOrgan[$field] ?? '',
|
|
'resultEng' => $rstFisikOrgan[$engField] ?? ''
|
|
];
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT
|
|
T_OrderHeaderID,
|
|
M_PatientID,
|
|
M_PatientOldPID ,
|
|
M_PatientName,
|
|
a.REG_NO,
|
|
b.REG_NO,
|
|
b.`Hepar (USG ABDOMEN)` as hepar,
|
|
b.`V. Fellea ( USG ABDOMEN)` as fellea,
|
|
b.`Pancreas (USG ABDOMEN)` as pancreas,
|
|
b.`Lien (USG ABDOMEN)` as lien,
|
|
b.`Right Kidney (USG ABDOMEN)` as right_Kidney,
|
|
b.`Left Kidney (USG ABDOMEN)` as left_Kidney,
|
|
b.`Buli-Buli (USG ABDOMEN)` as builiBuli,
|
|
b.`Prostat (USG ABDOMEN)` as prostat,
|
|
b.`Uterus dan Adnexa (USG ABDOMEN)` as uterus,
|
|
b.`Kesan (USG ABDOMEN)` as kesan,
|
|
b.`SARAN (USG ABDOMEN)` as saran,
|
|
b.`Appendix (USG ABDOMEN)` as appendix,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Hepar (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma( b.`Hepar (USG ABDOMEN)`, $lang), '')
|
|
ELSE 'xels'
|
|
END hepar_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`V. Fellea ( USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`V. Fellea ( USG ABDOMEN)`, $lang), '')
|
|
END as fellea_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Pancreas (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Pancreas (USG ABDOMEN)`, $lang), '')
|
|
END as pancreas_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Lien (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Lien (USG ABDOMEN)`, $lang), '')
|
|
END as lien_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Right Kidney (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Right Kidney (USG ABDOMEN)`, $lang), '')
|
|
END as right_Kidney_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Left Kidney (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Left Kidney (USG ABDOMEN)`, $lang), '')
|
|
END as left_Kidney_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Buli-Buli (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Buli-Buli (USG ABDOMEN)`, $lang), '')
|
|
END as builiBuli_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Prostat (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Prostat (USG ABDOMEN)`, $lang), '')
|
|
END as prostat_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Uterus dan Adnexa (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Uterus dan Adnexa (USG ABDOMEN)`, $lang), '')
|
|
END as uterus_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Kesan (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Kesan (USG ABDOMEN)`, $lang), '')
|
|
END as kesan_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`SARAN (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`SARAN (USG ABDOMEN)`, $lang), '')
|
|
END as saran_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.`Appendix (USG ABDOMEN)`
|
|
WHEN c.REG_NO IS NULL THEN IFNULL(fn_get_translate_word_separator_comma(b.`Appendix (USG ABDOMEN)`, $lang), '')
|
|
END as appendix_eng
|
|
FROM t_orderheader
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
AND T_OrderHeaderID = ?
|
|
JOIN x_adm_rekap_patient a
|
|
ON M_PatientOldPID = PATIENT_ID
|
|
JOIN x_adm_rekap_fisik_usg b
|
|
ON a.REG_NO = b.REG_NO
|
|
LEFT JOIN x_adm_rekap_fisik_usg_translate c
|
|
ON a.REG_NO = c.REG_NO";
|
|
$query = $this->db_onedev->query($sql, [$orderid]);
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get detail fisik old usg");
|
|
exit;
|
|
}
|
|
$rstFisikUsg = $query->row_array();
|
|
|
|
// List of base field names (without _eng suffix)
|
|
$baseFieldsUsg = [
|
|
"hepar",
|
|
"fellea",
|
|
"pancreas",
|
|
"lien",
|
|
"right_Kidney",
|
|
"left_Kidney",
|
|
"builiBuli",
|
|
"prostat",
|
|
"uterus",
|
|
"kesan",
|
|
"saran",
|
|
"appendix",
|
|
|
|
];
|
|
$resultFisikUsg = [];
|
|
foreach ($baseFieldsUsg as $field) {
|
|
$engField = $field . '_eng';
|
|
if (isset($rstFisikUsg[$field]) || isset($rstFisikUsg[$engField])) {
|
|
$resultFisikUsg[] = [
|
|
"name" => ucfirst(str_replace('_', ' ', $field)), // Menghilangkan underscore di name
|
|
"field" => $field,
|
|
'result' => $rstFisikUsg[$field] ?? '',
|
|
'resultEng' => $rstFisikUsg[$engField] ?? ''
|
|
];
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT
|
|
T_OrderHeaderID,
|
|
M_PatientID,
|
|
M_PatientOldPID ,
|
|
M_PatientName,
|
|
a.REG_NO,
|
|
b.REG_NO,
|
|
b.tb,
|
|
b.bb,
|
|
b.bmi,
|
|
b.sistolik,
|
|
b.diastolik,
|
|
b.nadi,
|
|
b.frekuensi,
|
|
b.visus_kanan,
|
|
b.visus_kiri,
|
|
b.kenal_warna,
|
|
b.lapang_pandang,
|
|
b.konjuktiva_sklera,
|
|
b.suhu,
|
|
b.stage,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.TB
|
|
WHEN c.REG_NO IS NULL THEN b.TB
|
|
ELSE 'xels'
|
|
END tb_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.BB
|
|
WHEN c.REG_NO IS NULL THEN b.BB
|
|
ELSE 'xels'
|
|
END AS bb_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.BMI
|
|
WHEN c.REG_NO IS NULL THEN b.BMI
|
|
ELSE 'xels'
|
|
END AS bmi_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Sistolik
|
|
WHEN c.REG_NO IS NULL THEN b.Sistolik
|
|
ELSE 'xels'
|
|
END AS sistolik_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Diastolik
|
|
WHEN c.REG_NO IS NULL THEN b.Diastolik
|
|
ELSE 'xels'
|
|
END AS diastolik_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Nadi
|
|
WHEN c.REG_NO IS NULL THEN b.Nadi
|
|
ELSE 'xels'
|
|
END AS nadi_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Frekuensi
|
|
WHEN c.REG_NO IS NULL THEN b.Frekuensi
|
|
ELSE 'xels'
|
|
END AS frekuensi_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Visus_Kanan
|
|
WHEN c.REG_NO IS NULL THEN b.Visus_Kanan
|
|
ELSE 'xels'
|
|
END AS visus_kanan_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Visus_Kiri
|
|
WHEN c.REG_NO IS NULL THEN b.Visus_Kiri
|
|
ELSE 'xels'
|
|
END AS visus_kiri_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Kenal_Warna
|
|
WHEN c.REG_NO IS NULL THEN b.Kenal_Warna
|
|
ELSE 'xels'
|
|
END AS kenal_warna_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Lapang_Pandang
|
|
WHEN c.REG_NO IS NULL THEN b.Lapang_Pandang
|
|
ELSE 'xels'
|
|
END AS lapang_pandang_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Konjuktiva_Sklera
|
|
WHEN c.REG_NO IS NULL THEN b.Konjuktiva_Sklera
|
|
ELSE 'xels'
|
|
END AS konjuktiva_sklera_eng,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.Suhu
|
|
WHEN c.REG_NO IS NULL THEN b.Suhu
|
|
ELSE 'xels'
|
|
END AS suhu_eng
|
|
FROM t_orderheader
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
AND T_OrderHeaderID = ?
|
|
JOIN x_adm_rekap_patient a
|
|
ON M_PatientOldPID = PATIENT_ID
|
|
JOIN x_adm_rekap_fisik_vital b
|
|
ON a.REG_NO = b.REG_NO
|
|
LEFT JOIN x_adm_rekap_fisik_vital_translate c
|
|
ON a.REG_NO = c.REG_NO";
|
|
$query = $this->db_onedev->query($sql, [$orderid]);
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get detail fisik old usg");
|
|
exit;
|
|
}
|
|
$rstFisikVital = $query->row_array();
|
|
// List of base field names (without _eng suffix)
|
|
$baseFieldsVital = [
|
|
"tb",
|
|
"bb",
|
|
"bmi",
|
|
"sistolik",
|
|
"diastolik",
|
|
"nadi",
|
|
"frekuensi",
|
|
"visus_kanan",
|
|
"visus_kiri",
|
|
"kenal_warna",
|
|
"lapang_pandang",
|
|
"konjuktiva_sklera",
|
|
"suhu",
|
|
|
|
];
|
|
$resultFisikVital = [];
|
|
foreach ($baseFieldsVital as $field) {
|
|
$engField = $field . '_eng';
|
|
if (isset($rstFisikVital[$field]) || isset($rstFisikVital[$engField])) {
|
|
$resultFisikVital[] = [
|
|
"name" => ucfirst(str_replace('_', ' ', $field)), // Menghilangkan underscore di name
|
|
"field" => $field,
|
|
'result' => $rstFisikVital[$field] ?? '',
|
|
'resultEng' => $rstFisikVital[$engField] ?? ''
|
|
];
|
|
}
|
|
}
|
|
$saran = array();
|
|
|
|
$sql = "SELECT
|
|
T_OrderHeaderID,
|
|
M_PatientID,
|
|
M_PatientOldPID ,
|
|
M_PatientName,
|
|
a.REG_NO,
|
|
b.REG_NO,
|
|
b.saran,
|
|
CASE
|
|
WHEN c.REG_NO IS NOT NULL THEN c.saran
|
|
WHEN c.REG_NO IS NULL THEN ''
|
|
ELSE ''
|
|
END saran_eng
|
|
FROM t_orderheader
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
AND T_OrderHeaderID = ?
|
|
JOIN x_adm_rekap_patient a
|
|
ON M_PatientOldPID = PATIENT_ID
|
|
JOIN x_adm_rekap_fisik_saran b
|
|
ON a.REG_NO = b.REG_NO
|
|
LEFT JOIN x_adm_rekap_fisik_saran_translate c
|
|
ON a.REG_NO = c.REG_NO";
|
|
$query = $this->db_onedev->query($sql, [$orderid]);
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get detail fisik old saran");
|
|
exit;
|
|
}
|
|
$saran = $query->row_array();
|
|
$result = array(
|
|
'lab' => [],
|
|
'nonlab' => [],
|
|
'fisik' => $fisik,
|
|
'rstNonlab' => $rstNonlab,
|
|
'fisikOrgan' => $resultFisikOrgan,
|
|
'fisikUsg' => $resultFisikUsg,
|
|
'fisikVital' => $resultFisikVital,
|
|
'fisikSaran' => $saran,
|
|
'dataPatientOld' => $dataPatientOld,
|
|
);
|
|
$this->sys_ok($result);
|
|
}
|
|
function getFisikUmum($reID, $debug = 'N', $lang = '1')
|
|
{
|
|
$rst = [];
|
|
$riwayats = [];
|
|
$fisiks = [];
|
|
$k3s = [];
|
|
$sql = "SELECT *
|
|
FROM so_resultentry_fisik_umum
|
|
JOIN fisik_template ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID
|
|
WHERE
|
|
So_ResultEntryFisikUmumSo_ResultEntryID = {$reID} AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
ORDER BY FisikTemplateCode ASC";
|
|
$rows_data = $this->db_onedev->query($sql)->result_array();
|
|
// print_r($rows_data);
|
|
// echo $sql;
|
|
if ($rows_data) {
|
|
foreach ($rows_data as $key => $value) {
|
|
$data = json_decode($value['So_ResultEntryFisikUmumDetails'], TRUE);
|
|
$data['reFisikUmumID'] = $value['So_ResultEntryFisikUmumID'];
|
|
|
|
if ($value['FisikTemplateType'] == 'Riwayat')
|
|
$riwayats[] = $data;
|
|
|
|
if ($value['FisikTemplateType'] == 'Fisik')
|
|
$fisiks[] = $data;
|
|
|
|
if ($value['FisikTemplateType'] == 'K3')
|
|
$k3s[] = $data;
|
|
}
|
|
}
|
|
// $reFisikUmumID = $rows_data['So_ResultEntryFisikUmumID'];
|
|
$finalResult = [];
|
|
foreach ($riwayats as $key => $data) {
|
|
if ($data['type_form'] == 'XV') {
|
|
foreach ($data['details'] as $key1 => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XO') {
|
|
foreach ($data['details'] as $key2 => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XVS') {
|
|
foreach ($data['details'] as $key3 => $detail) {
|
|
foreach ($detail['details'] as $key4 => $detailData) {
|
|
if ($detailData['value'] != '') {
|
|
$detailData['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detailData['title'] = $data['title'];
|
|
$finalResult[] = $detailData;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XD') {
|
|
foreach ($data['details'] as $key5 => $detail) {
|
|
foreach ($detail['details'] as $key6 => $detailData) {
|
|
if ($detailData['value'] != '') {
|
|
$detailData['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detailData['title'] = $data['title'];
|
|
$finalResult[] = $detailData;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
foreach ($fisiks as $key => $data) {
|
|
if ($data['type_form'] == 'VXX+') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XXV') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XV') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XXVWL') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XVS') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
foreach ($detail['details'] as $key => $detailData) {
|
|
if ($detailData['value'] != '') {
|
|
$detailData['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detailData['title'] = $data['title'];
|
|
$finalResult[] = $detailData;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XVS3R') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
foreach ($detail['details'] as $key => $detailData) {
|
|
if ($detailData['value'] != '') {
|
|
$detailData['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detailData['title'] = $data['title'];
|
|
$finalResult[] = $detailData;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
foreach ($k3s as $key => $data) {
|
|
if ($data['type_form'] == 'XVV') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value_sumber'] != '' || $detail['value_sumber'] != '') {
|
|
$dtl = $detail;
|
|
$dtl['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$dtl['value'] = $detail['value_sumber'] . '|' . $detail['value_sumber'];
|
|
$dtl['title'] = $data['title'];
|
|
$finalResult[] = $dtl;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XXV') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XV') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XXVWL') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
if ($detail['value'] != '') {
|
|
$detail['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detail['title'] = $data['title'];
|
|
$finalResult[] = $detail;
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XVS') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
foreach ($detail['details'] as $key => $detailData) {
|
|
if ($detailData['value'] != '') {
|
|
$detailData['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detailData['title'] = $data['title'];
|
|
$finalResult[] = $detailData;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ($data['type_form'] == 'XVS3R') {
|
|
foreach ($data['details'] as $key => $detail) {
|
|
foreach ($detail['details'] as $key => $detailData) {
|
|
if ($detailData['value'] != '') {
|
|
$detailData['reFisikUmumID'] = $data['reFisikUmumID'];
|
|
$detailData['title'] = $data['title'];
|
|
$finalResult[] = $detailData;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
foreach ($finalResult as $key => $value) {
|
|
if (property_exists($value, 'segment_name')) {
|
|
$sql = "SELECT
|
|
So_ResultEntryFisikUmumAiID AS aiTranslateID,
|
|
So_ResultEntryFisikUmumAiTranslate AS aiResult,
|
|
So_ResultEntryFisikUmumAiConfidence AS aiConfidence
|
|
FROM so_resultentry_fisik_umum_ai
|
|
WHERE So_ResultEntryFisikUmumAiSo_ResultEntryFisikUmumID = ?
|
|
AND So_ResultEntryFisikUmumAiLangID = ?
|
|
AND So_ResultEntryFisikUmumAiTableName = ?
|
|
AND So_ResultEntryFisikUmumAiSegment = ?
|
|
AND So_ResultEntryFisikUmumAiCode = ?
|
|
AND So_ResultEntryFisikUmumAiIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$value['reFisikUmumID'],
|
|
$lang,
|
|
$value['table_name'],
|
|
$value['segment_name'],
|
|
$value['id_code'],
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get ai fisik umum");
|
|
exit;
|
|
}
|
|
$aiTranslationID = "";
|
|
$aiResult = "";
|
|
$aiConfidence = "";
|
|
$rst = $query->result_array();
|
|
if (count($rst) != 0) {
|
|
$aiTranslationID = $rst[0]['aiTranslateID'];
|
|
$aiResult = $rst[0]['aiResult'];
|
|
$aiConfidence = $rst[0]['aiConfidence'];
|
|
}
|
|
$sql = "SELECT
|
|
So_ResultEntryFisikUmumOtherID AS resultTranslateID,
|
|
So_ResultEntryFisikUmumOtherTranslate AS displayResult
|
|
FROM so_resultentry_fisik_umum_other
|
|
WHERE So_ResultEntryFisikUmumOtherSo_ResultEntryFisikUmumID = ?
|
|
AND So_ResultEntryFisikUmumOtherLangID = ?
|
|
AND So_ResultEntryFisikUmumOtherTableName = ?
|
|
AND So_ResultEntryFisikUmumOtherSegment = ?
|
|
AND So_ResultEntryFisikUmumOtherCode = ?
|
|
AND So_ResultEntryFisikUmumOtherIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$value['reFisikUmumID'],
|
|
$lang,
|
|
$value['table_name'],
|
|
$value['segment_name'],
|
|
$value['id_code'],
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get ai fisik umum");
|
|
exit;
|
|
}
|
|
$resultTranslationID = "";
|
|
$displayResult = "";
|
|
$status = 'Y';
|
|
$rst = $query->result_array();
|
|
if (count($rst) != 0) {
|
|
$resultTranslationID = $rst[0]['resultTranslateID'];
|
|
$displayResult = $rst[0]['displayResult'];
|
|
}
|
|
if ($displayResult == '') {
|
|
$displayResult = $aiResult;
|
|
$status = 'N';
|
|
}
|
|
$finalResult[$key]['resultTranslateID'] = $resultTranslationID;
|
|
$finalResult[$key]['displayResult'] = $displayResult;
|
|
$finalResult[$key]['aiTranslateID'] = $aiTranslationID;
|
|
$finalResult[$key]['aiResult'] = $aiResult;
|
|
$finalResult[$key]['aiConfidence'] = $aiConfidence;
|
|
$finalResult[$key]['status'] = $status;
|
|
} else {
|
|
$sql = "SELECT
|
|
So_ResultEntryFisikUmumAiID AS aiTranslateID,
|
|
So_ResultEntryFisikUmumAiTranslate AS aiResult,
|
|
So_ResultEntryFisikUmumAiConfidence AS aiConfidence
|
|
FROM so_resultentry_fisik_umum_ai
|
|
WHERE So_ResultEntryFisikUmumAiSo_ResultEntryFisikUmumID = ?
|
|
AND So_ResultEntryFisikUmumAiLangID = ?
|
|
AND So_ResultEntryFisikUmumAiTableName = ?
|
|
AND So_ResultEntryFisikUmumAiCode = ?
|
|
AND So_ResultEntryFisikUmumAiIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$value['reFisikUmumID'],
|
|
$lang,
|
|
$value['table_name'],
|
|
$value['id_code'],
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get translate resuly fisik umum");
|
|
exit;
|
|
}
|
|
$aiTranslationID = "";
|
|
$aiResult = "";
|
|
$aiConfidence = "";
|
|
$rst = $query->result_array();
|
|
if (count($rst) != 0) {
|
|
$aiTranslationID = $rst[0]['aiTranslateID'];
|
|
$aiResult = $rst[0]['aiResult'];
|
|
$aiConfidence = $rst[0]['aiConfidence'];
|
|
}
|
|
$sql = "SELECT
|
|
So_ResultEntryFisikUmumOtherID AS resultTranslateID,
|
|
So_ResultEntryFisikUmumOtherTranslate AS displayResult
|
|
FROM so_resultentry_fisik_umum_other
|
|
WHERE So_ResultEntryFisikUmumOtherSo_ResultEntryFisikUmumID = ?
|
|
AND So_ResultEntryFisikUmumOtherLangID = ?
|
|
AND So_ResultEntryFisikUmumOtherTableName = ?
|
|
AND So_ResultEntryFisikUmumOtherCode = ?
|
|
AND So_ResultEntryFisikUmumOtherIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$value['reFisikUmumID'],
|
|
$lang,
|
|
$value['table_name'],
|
|
$value['id_code'],
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error get ai fisik umum");
|
|
exit;
|
|
}
|
|
$resultTranslationID = "";
|
|
$displayResult = "";
|
|
$status = 'Y';
|
|
$rst = $query->result_array();
|
|
if (count($rst) != 0) {
|
|
$resultTranslationID = $rst[0]['resultTranslateID'];
|
|
$displayResult = $rst[0]['displayResult'];
|
|
}
|
|
if ($displayResult == '') {
|
|
$displayResult = $aiResult;
|
|
$status = 'N';
|
|
}
|
|
$finalResult[$key]['resultTranslateID'] = $resultTranslationID;
|
|
$finalResult[$key]['displayResult'] = $displayResult;
|
|
$finalResult[$key]['aiTranslateID'] = $aiTranslationID;
|
|
$finalResult[$key]['aiResult'] = $aiResult;
|
|
$finalResult[$key]['aiConfidence'] = $aiConfidence;
|
|
$finalResult[$key]['status'] = $status;
|
|
}
|
|
}
|
|
|
|
|
|
$rst['riwayats'] = $riwayats;
|
|
$rst['fisiks'] = $fisiks;
|
|
$rst['k3s'] = $k3s;
|
|
$rst['finalResult'] = $finalResult;
|
|
|
|
if ($debug == 'Y') {
|
|
$this->sys_ok($rst);
|
|
} else {
|
|
return $rst;
|
|
}
|
|
}
|
|
public function save()
|
|
{
|
|
$userid = $this->sys_user["M_UserID"];
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$orderid = $prm['orderid'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$lang = $prm['lang'];
|
|
$lab = $prm['lab'];
|
|
$sql = "SELECT *
|
|
FROM `m_lang`
|
|
WHERE `M_LangID` = ?
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get language");
|
|
exit;
|
|
}
|
|
$language = $query->result_array();
|
|
if (count($language) == 0) {
|
|
$this->sys_error_db("Bahasa tidak ditemukan");
|
|
exit;
|
|
}
|
|
$dataLang = $language[0];
|
|
$logType = "";
|
|
$jsonBefore = "";
|
|
$sql = "SELECT * FROM t_orderdetaillang WHERE T_OrderDetailLangT_OrderHeaderID = ? AND T_OrderDetailLangNat_LangID = ?";
|
|
$query = $this->db_onedev->query($sql, [$orderid, $lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error log data before");
|
|
exit;
|
|
}
|
|
$rstJsonBefore = $query->result_array();
|
|
if (count($rstJsonBefore) == 0) {
|
|
$logType = "ADD";
|
|
} else {
|
|
$logType = "UPDATE";
|
|
}
|
|
$jsonBefore = json_encode($rstJsonBefore);
|
|
for ($i = 0; $i < count($lab); $i++) {
|
|
$data = $lab[$i];
|
|
$newNormalValue = '';
|
|
if ($data['normalValueLangNote'] != '' || $data['normalValueLangNote'] != null) {
|
|
$newNormalValue = $data['normalValueLangNote'];
|
|
} else if (($data['normalValueNote'] != '' || $data['normalValueLangNote'] != null)) {
|
|
$newNormalValue = $data['normalValueNote'];
|
|
} else {
|
|
$newNormalValue = NULL;
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM `nat_testlang`
|
|
WHERE `Nat_TestLangNat_TestID` = ?
|
|
AND `Nat_testLangIsActive` = 'Y'
|
|
AND Nat_TestLangLangID = ?
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$data['natTestID'], $lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get language");
|
|
exit;
|
|
}
|
|
$natTestLang = $query->row_array();
|
|
|
|
|
|
$sql = "SELECT *
|
|
FROM `nat_unitlang`
|
|
WHERE `Nat_UnitLangNat_UnitID` = ?
|
|
AND `Nat_UnitLangIsActive` = 'Y'
|
|
AND `Nat_UnitLangNat_LangID` = ?
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$data['natUnitID'], $lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get lang unit");
|
|
exit;
|
|
}
|
|
$natUnitLang = $query->row_array();
|
|
$unitID = '';
|
|
$unitName = '';
|
|
if ($data['natUnitID'] != '' && $data['natUnitID'] != null) {
|
|
$unitID = $natUnitLang['Nat_UnitLangID'];
|
|
$unitName = $natUnitLang['Nat_UnitLangName'];
|
|
}
|
|
|
|
// $sql = "SELECT *
|
|
// FROM `nat_unitlang`
|
|
// WHERE `Nat_UnitLangNat_UnitID` = ?
|
|
// AND `Nat_UnitLangIsActive` = 'Y'
|
|
// AND `Nat_UnitLangNat_LangID` = ?
|
|
// LIMIT 1";
|
|
// $query = $this->db_onedev->query($sql, [$data['natUnitID'], $lang]);
|
|
// if (!$query) {
|
|
// $this->sys_error_db("Error get lang unit");
|
|
// exit;
|
|
// }
|
|
// $natUnitLang = $query->row_array();
|
|
// $unitID = '';
|
|
// $unitName = '';
|
|
// if ($data['natUnitID'] != '' && $data['natUnitID'] != null) {
|
|
// $unitID = $natUnitLang['Nat_UnitLangID'];
|
|
// $unitName = $natUnitLang['Nat_UnitLangName'];
|
|
// }
|
|
|
|
$isEdited = 'N';
|
|
if (trim($data['displayResult']) != trim($data['aiResult'])) {
|
|
$isEdited = 'Y';
|
|
}
|
|
|
|
$sqlCek = "SELECT *
|
|
FROM t_orderdetaillang
|
|
WHERE T_OrderDetailLangT_OrderDetailID = ?
|
|
AND T_OrderDetailLangT_OrderHeaderID = ?
|
|
AND T_OrderDetailLangNat_LangID = ?
|
|
AND T_OrderDetailLangIsActive = 'Y';";
|
|
$queryCek = $this->db_onedev->query($sqlCek, [$data['orderDetailID'], $data['orderID'], $lang]);
|
|
if (!$queryCek) {
|
|
$this->sys_error_db("Error cek data");
|
|
exit;
|
|
}
|
|
$dataCek = $queryCek->result_array();
|
|
// print_r($data);
|
|
if (count($dataCek) == 1) {
|
|
//UPDATE
|
|
$sql = "UPDATE t_orderdetaillang
|
|
SET
|
|
T_OrderDetailLangIsSI = 'N',
|
|
T_OrderDetailLangNat_TestLangID = ?,
|
|
T_OrderDetailLangNat_TestLangName = ?,
|
|
T_OrderDetailLangNat_UnitLangID = ?,
|
|
T_OrderDetailLangNat_UnitLangName = ?,
|
|
T_OrderDetailLangResult = ?,
|
|
T_OrderDetailLangIsEdited = ?,
|
|
T_OrderDetailLangNote = ?,
|
|
T_OrderDetailLangFlag = ?,
|
|
T_OrderDetailLangNat_NormalValueLangID = ?,
|
|
T_OrderDetailLangNat_NormalValueLangNote = ?,
|
|
T_OrderDetailLangLastUpdated = CURRENT_TIMESTAMP,
|
|
T_OrderDetailLangUserID = ?,
|
|
T_OrderDetailLangResultBefore = ?,
|
|
T_OrderDetailLangNormalValueDescription = ?
|
|
WHERE T_OrderDetailLangT_OrderDetailID = ?
|
|
AND T_OrderDetailLangT_OrderHeaderID = ?
|
|
AND T_OrderDetailLangNat_LangID = ?;";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$natTestLang['Nat_TestLangID'],
|
|
$natTestLang['Nat_TestLangName'],
|
|
$unitID,
|
|
$unitName,
|
|
$data['displayResult'],
|
|
$isEdited,
|
|
$data['resultNote'],
|
|
$data['resultFlag'],
|
|
$data['natNormalvalueID'],
|
|
$newNormalValue, // $data['normalValueNote'] || $data['normalValueLangNote'],
|
|
$userid,
|
|
$data['resultBefore'],
|
|
$data['valDesc'],
|
|
$data['orderDetailID'],
|
|
$data['orderID'],
|
|
$lang,
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error update data");
|
|
exit;
|
|
}
|
|
} else {
|
|
$sql = "INSERT INTO t_orderdetaillang (
|
|
T_OrderDetailLangT_OrderHeaderID,
|
|
T_OrderDetailLangT_OrderDetailID,
|
|
T_OrderDetailLangNat_LangID,
|
|
T_OrderDetailLangIsSI,
|
|
T_OrderDetailLangNat_TestLangID,
|
|
T_OrderDetailLangNat_TestLangName,
|
|
T_OrderDetailLangNat_UnitLangID,
|
|
T_OrderDetailLangNat_UnitLangName,
|
|
T_OrderDetailLangResult,
|
|
T_OrderDetailLangIsEdited,
|
|
T_OrderDetailLangNote,
|
|
T_OrderDetailLangNat_NormalValueLangID,
|
|
T_OrderDetailLangNat_NormalValueLangNote,
|
|
T_OrderDetailLangFlag,
|
|
T_OrderDetailLangUserID,
|
|
T_OrderDetailLangResultBefore,
|
|
T_OrderDetailLangNormalValueDescription
|
|
) VALUES (
|
|
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
|
)";
|
|
|
|
$query = $this->db_onedev->query($sql, [
|
|
$data['orderID'],
|
|
$data['orderDetailID'],
|
|
$lang,
|
|
'N',
|
|
$natTestLang['Nat_TestLangID'],
|
|
$natTestLang['Nat_TestLangName'],
|
|
$unitID,
|
|
$unitName,
|
|
$data['displayResult'],
|
|
$isEdited,
|
|
$data['resultNote'],
|
|
$data['natNormalvalueID'],
|
|
$newNormalValue, // $data['normalValueNote'] || $data['normalValueLangNote'],
|
|
$data['resultFlag'],
|
|
$userid,
|
|
$data['resultBefore'],
|
|
$data['valDesc'],
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error insert data");
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
$jsonAfter = "";
|
|
$sql = "SELECT * FROM t_orderdetaillang WHERE T_OrderDetailLangT_OrderHeaderID = ? AND T_OrderDetailLangNat_LangID = ?";
|
|
$query = $this->db_onedev->query($sql, [$orderid, $lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error log data After");
|
|
exit;
|
|
}
|
|
$rstJsonAfter = $query->result_array();
|
|
$jsonAfter = json_encode($rstJsonAfter);
|
|
|
|
$sql = "INSERT INTO cpone_log.log_t_orderdetaillang (
|
|
Log_T_OrderDetailLangType,
|
|
Log_T_OrderDetailLangT_OrderHeaderID,
|
|
Log_T_OrderDetailLangLangID,
|
|
Log_T_OrderDetailLangPrm,
|
|
Log_T_OrderDetailLangJsonBefore,
|
|
Log_T_OrderDetailLangJsonAfter,
|
|
Log_T_OrderDetailLangUserID,
|
|
Log_T_OrderDetailLangCreated
|
|
) VALUES (
|
|
?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP
|
|
);";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$logType,
|
|
$orderid,
|
|
$lang,
|
|
json_encode($prm),
|
|
$jsonBefore,
|
|
$jsonAfter,
|
|
$userid
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error insert log ");
|
|
exit;
|
|
}
|
|
$this->sys_ok("Success");
|
|
}
|
|
|
|
public function saveNonlab()
|
|
{
|
|
$userid = $this->sys_user["M_UserID"];
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$orderid = $prm['orderid'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$lang = $prm['lang'];
|
|
$nonlab = $prm['nonlab'];
|
|
$sql = "SELECT *
|
|
FROM `m_lang`
|
|
WHERE `M_LangID` = ?
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get language");
|
|
exit;
|
|
}
|
|
$language = $query->result_array();
|
|
if (count($language) == 0) {
|
|
$this->sys_error_db("Bahasa tidak ditemukan");
|
|
exit;
|
|
}
|
|
// for ($i = 0; $i < count($nonlab); $i++) {
|
|
// $data = $nonlab[$i];
|
|
// # code...
|
|
// }
|
|
$jsonBefore = '';
|
|
$sql = "SELECT *
|
|
FROM `so_resultentrydetail_other`
|
|
WHERE `So_ResultEntryDetailOtherSo_ResultEntryID` = ? AND `So_ResultEntryDetailOtherM_LangID` = ?
|
|
";
|
|
$query = $this->db_onedev->query($sql, [$nonlab['resultEntryID'], $lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error log data before");
|
|
exit;
|
|
}
|
|
$rstJsonBefore = $query->result_array();
|
|
if (count($rstJsonBefore) == 0) {
|
|
$logType = "ADD";
|
|
} else {
|
|
$logType = "UPDATE";
|
|
}
|
|
$jsonBefore = json_encode($rstJsonBefore);
|
|
|
|
for ($i = 0; $i < count($nonlab['detail']); $i++) {
|
|
$detail = $nonlab['detail'][$i];
|
|
$isEdited = 'N';
|
|
if (trim($detail['displayResult']) != trim($detail['aiResult'])) {
|
|
$isEdited = 'Y';
|
|
}
|
|
|
|
$sqlCek = "SELECT *
|
|
FROM so_resultentrydetail_other
|
|
WHERE So_ResultEntryDetailOtherSo_ResultEntryID = ?
|
|
AND So_ResultEntryDetailOtherSo_TemplateDetailID = ?
|
|
AND So_ResultEntryDetailOtherM_LangID = ?
|
|
AND So_ResultEntryDetailOtherIsActive = 'Y';";
|
|
$queryCek = $this->db_onedev->query($sqlCek, [$detail['resultEntryID'], $detail['templateDetailLangID'], $lang]);
|
|
if (!$queryCek) {
|
|
$this->sys_error_db("Error cek data");
|
|
exit;
|
|
}
|
|
$dataCek = $queryCek->result_array();
|
|
if (count($dataCek) == 0) {
|
|
$sql = "INSERT INTO so_resultentrydetail_other(
|
|
So_ResultEntryDetailOtherM_LangID,
|
|
So_ResultEntryDetailOtherSo_ResultEntryID,
|
|
So_ResultEntryDetailOtherSo_TemplateDetailID,
|
|
So_ResultEntryDetailOtherSo_TemplateDetailName,
|
|
So_ResultEntryDetailOtherSo_TemplateDetailCode,
|
|
So_ResultEntryDetailOtherIsEdited,
|
|
So_ResultEntryDetailOtherResult,
|
|
So_ResultEntryDetailOtherResultBefore,
|
|
So_ResultEntryDetailOtherUserID,
|
|
So_ResultEntryDetailOtherCreated)
|
|
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$lang,
|
|
$detail['resultEntryID'],
|
|
$detail['templateDetailLangID'],
|
|
$detail['templateDetailLangName'],
|
|
$detail['templateDetailCode'],
|
|
$isEdited,
|
|
$detail['displayResult'],
|
|
$detail['resultBeforeTranslate'],
|
|
$userid
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error insert data ");
|
|
exit;
|
|
}
|
|
} else {
|
|
$sql = "UPDATE so_resultentrydetail_other
|
|
SET So_ResultEntryDetailOtherResult = ?,
|
|
So_ResultEntryDetailOtherResultBefore = ?,
|
|
So_ResultEntryDetailOtherIsEdited = ?,
|
|
So_ResultEntryDetailOtherLastUpdated = NOW(),
|
|
So_ResultEntryDetailOtherUserID = ?
|
|
WHERE So_ResultEntryDetailOtherSo_ResultEntryID = ?
|
|
AND So_ResultEntryDetailOtherSo_TemplateDetailID = ?
|
|
AND So_ResultEntryDetailOtherM_LangID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$detail['displayResult'],
|
|
$detail['resultBeforeTranslate'],
|
|
$isEdited,
|
|
$userid,
|
|
$detail['resultEntryID'],
|
|
$detail['templateDetailLangID'],
|
|
$lang
|
|
]);
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error update data ");
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
$jsonAfter = '';
|
|
$sql = "SELECT *
|
|
FROM `so_resultentrydetail_other`
|
|
WHERE `So_ResultEntryDetailOtherSo_ResultEntryID` = ? AND `So_ResultEntryDetailOtherM_LangID` = ?
|
|
";
|
|
$query = $this->db_onedev->query($sql, [$nonlab['resultEntryID'], $lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error log data After");
|
|
exit;
|
|
}
|
|
$rstJsonAfter = $query->result_array();
|
|
|
|
$jsonAfter = json_encode($rstJsonAfter);
|
|
|
|
$sql = "INSERT INTO cpone_log.log_resultentrylang (
|
|
Log_ResultEntryLangSo_ResultEntryID,
|
|
Log_ResultEntryLangType,
|
|
Log_ResultEntryLangLangID,
|
|
Log_ResultEntryLangPrm,
|
|
Log_ResultEntryLangJsonBefore,
|
|
Log_ResultEntryLangJsonAfter,
|
|
Log_ResultEntryLangUserID,
|
|
Log_ResultEntryLangCreated
|
|
) VALUES (
|
|
?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP
|
|
);";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$nonlab['resultEntryID'],
|
|
$logType,
|
|
$lang,
|
|
json_encode($prm),
|
|
$jsonBefore,
|
|
$jsonAfter,
|
|
$userid
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error insert log data");
|
|
exit;
|
|
}
|
|
$this->sys_ok('Success');
|
|
}
|
|
public function saveFisikUmum()
|
|
{
|
|
$userid = $this->sys_user["M_UserID"];
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$orderid = $prm['orderid'];
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$lang = $prm['lang'];
|
|
$fisik = $prm['fisik'];
|
|
$fisikOrgan = $prm['fisikOrgan'];
|
|
$fisikVital = $prm['fisikVital'];
|
|
$fisikUsg = $prm['fisikUsg'];
|
|
$fisikSaran = $prm['fisikSaran'];
|
|
$dataPatientOld = $prm['dataPatientOld'];
|
|
$sql = "SELECT *
|
|
FROM `m_lang`
|
|
WHERE `M_LangID` = ?
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, [$lang]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get language");
|
|
exit;
|
|
}
|
|
$language = $query->result_array();
|
|
|
|
$sql = "SELECT
|
|
So_ResultEntryFisikUmumID,
|
|
so_resultentry_fisik_umum_other.*
|
|
FROM so_resultentry_fisik_umum
|
|
JOIN so_resultentry_fisik_umum_other
|
|
ON So_ResultEntryFisikUmumID = So_ResultEntryFisikUmumOtherSo_ResultEntryFisikUmumID
|
|
AND So_ResultEntryFisikUmumOtherIsActive = 'Y'
|
|
WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ?
|
|
AND So_ResultEntryFisikUmumOtherLangID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$fisik['resultEntryID'],
|
|
$lang
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get data log before");
|
|
exit;
|
|
}
|
|
$jsonBefore = $query->result_array();
|
|
if (count($jsonBefore) == 0) {
|
|
$logType = "ADD";
|
|
} else {
|
|
$logType = "UPDATE";
|
|
}
|
|
|
|
foreach ($fisik['detail'] as $key => $value) {
|
|
$segmentName = $value['segment_name'] ?? '';
|
|
// echo $value['segment_name'];
|
|
// if (property_exists($value, 'segment_name')) {
|
|
// $segmentName = $value['segment_name'];
|
|
// }
|
|
$sql = "SELECT
|
|
*
|
|
FROM so_resultentry_fisik_umum_other
|
|
WHERE So_ResultEntryFisikUmumOtherSo_ResultEntryFisikUmumID = ?
|
|
AND So_ResultEntryFisikUmumOtherLangID = ?
|
|
AND So_ResultEntryFisikUmumOtherTableName = ?
|
|
AND So_ResultEntryFisikUmumOtherSegment = ?
|
|
AND So_ResultEntryFisikUmumOtherCode = ?
|
|
AND So_ResultEntryFisikUmumOtherIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$value['reFisikUmumID'],
|
|
$lang,
|
|
$value['table_name'],
|
|
$segmentName,
|
|
$value['id_code'],
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error cek result translate");
|
|
exit;
|
|
}
|
|
|
|
$cek = $query->result_array();
|
|
if (count($cek) > 0) {
|
|
$sql = "UPDATE so_resultentry_fisik_umum_other
|
|
SET
|
|
So_ResultEntryFisikUmumOtherTranslate = ?, -- Update teks terjemahan
|
|
So_ResultEntryFisikUmumOtherLastUpdated = NOW(), -- Update waktu terakhir diperbarui
|
|
So_ResultEntryFisikUmumOtherLastUpdatedUserID = $userid -- Update ID pengguna yang terakhir memperbarui
|
|
WHERE
|
|
So_ResultEntryFisikUmumOtherID = ?; ";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$value['displayResult'],
|
|
$cek[0]['So_ResultEntryFisikUmumOtherID']
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error update translate fisik");
|
|
exit;
|
|
}
|
|
} else {
|
|
$sql = "INSERT INTO so_resultentry_fisik_umum_other (
|
|
So_ResultEntryFisikUmumOtherSo_ResultEntryFisikUmumID,
|
|
So_ResultEntryFisikUmumOtherLangID,
|
|
So_ResultEntryFisikUmumOtherTableName,
|
|
So_ResultEntryFisikUmumOtherSegment,
|
|
So_ResultEntryFisikUmumOtherLabel,
|
|
So_ResultEntryFisikUmumOtherCode,
|
|
So_ResultEntryFisikUmumOtherTranslate,
|
|
So_ResultEntryFisikUmumOtherCreated,
|
|
So_ResultEntryFisikUmumOtherCreatedUserID
|
|
)
|
|
VALUES (
|
|
?, -- So_ResultEntryFisikUmumOtherSo_ResultEntryFisikUmumID
|
|
?, -- So_ResultEntryFisikUmumOtherLangID
|
|
?, -- So_ResultEntryFisikUmumOtherTableName
|
|
?, -- So_ResultEntryFisikUmumOtherSegment
|
|
?, -- So_ResultEntryFisikUmumOtherLabel
|
|
?, -- So_ResultEntryFisikUmumOtherCode
|
|
?, -- So_ResultEntryFisikUmumOtherTranslate
|
|
NOW(),
|
|
$userid
|
|
);";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$value['reFisikUmumID'],
|
|
$lang,
|
|
$value['table_name'],
|
|
$segmentName,
|
|
$value['label'],
|
|
$value['id_code'],
|
|
$value['displayResult'],
|
|
]);
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error_db("Error insert translate fisik");
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (count($fisikOrgan) > 0) {
|
|
$this->saveFisikOrgan($fisikOrgan, $dataPatientOld['REG_NO'], $userid, $lang);
|
|
}
|
|
if (count($fisikUsg) > 0) {
|
|
$this->saveFisikUsg($fisikUsg, $dataPatientOld['REG_NO'], $userid, $lang);
|
|
}
|
|
if (count($fisikVital) > 0) {
|
|
$this->saveFisikVital($fisikVital, $dataPatientOld['REG_NO'], $userid, $lang);
|
|
}
|
|
|
|
if (!empty($fisikSaran)) {
|
|
$this->saveFisikSaran($fisikSaran, $dataPatientOld['REG_NO'], $userid, $lang);
|
|
}
|
|
|
|
|
|
|
|
|
|
$sql = "SELECT
|
|
So_ResultEntryFisikUmumID,
|
|
so_resultentry_fisik_umum_other.*
|
|
FROM so_resultentry_fisik_umum
|
|
JOIN so_resultentry_fisik_umum_other
|
|
ON So_ResultEntryFisikUmumID = So_ResultEntryFisikUmumOtherSo_ResultEntryFisikUmumID
|
|
AND So_ResultEntryFisikUmumOtherIsActive = 'Y'
|
|
WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ?
|
|
AND So_ResultEntryFisikUmumOtherLangID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$fisik['resultEntryID'],
|
|
$lang
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error get data log after");
|
|
exit;
|
|
}
|
|
$jsonAfter = $query->result_array();
|
|
$sql = "INSERT INTO cpone_log.log_resultentrylang (
|
|
Log_ResultEntryLangSo_ResultEntryID,
|
|
Log_ResultEntryLangType,
|
|
Log_ResultEntryLangLangID,
|
|
Log_ResultEntryLangPrm,
|
|
Log_ResultEntryLangJsonBefore,
|
|
Log_ResultEntryLangJsonAfter,
|
|
Log_ResultEntryLangUserID,
|
|
Log_ResultEntryLangCreated
|
|
) VALUES (
|
|
?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP
|
|
);";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$fisik['resultEntryID'],
|
|
$logType,
|
|
$lang,
|
|
json_encode($prm),
|
|
json_encode($jsonBefore),
|
|
json_encode($jsonAfter),
|
|
$userid
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error insert log data");
|
|
exit;
|
|
}
|
|
$this->sys_ok("OK");
|
|
}
|
|
|
|
function saveFisikOrgan($data, $regNo, $userID, $lang)
|
|
{
|
|
// if (count($data) > 0) {
|
|
// return;
|
|
// }
|
|
// Initialize result array
|
|
// $prm = $this->sys_input;
|
|
// $data = $prm['data'];
|
|
// $regNo = $prm['reg_no'];
|
|
// $userID = $prm['userID'];
|
|
// $lang = 2;
|
|
// echo json_encode($prm);
|
|
// exit;
|
|
$dataArray = [];
|
|
|
|
|
|
|
|
// Transform data
|
|
foreach ($data as $item) {
|
|
$dataArray[$item['field']] = $item['resultEng'];
|
|
}
|
|
$dataArray['langID'] = $lang;
|
|
$dataArray['REG_NO'] = $regNo;
|
|
$dataArray['userID'] = $userID;
|
|
|
|
$dataArray['updated'] = date('Y-m-d H:i:s');
|
|
$sql = "SELECT * FROM x_adm_rekap_fisik_organ_translate
|
|
WHERE REG_NO = ?
|
|
AND langID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$regNo,
|
|
$lang
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error insert log data");
|
|
exit;
|
|
}
|
|
$dataCek = $query->result_array();
|
|
|
|
// echo (json_encode($dataArray));
|
|
// exit;
|
|
|
|
if (count($dataCek) == 0) {
|
|
$dataArray['created'] = date('Y-m-d H:i:s');
|
|
# code...
|
|
$qry = $this->db_onedev->insert('x_adm_rekap_fisik_organ_translate', $dataArray);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
} else {
|
|
$this->db_onedev->where('REG_NO', $regNo);
|
|
$qry = $this->db_onedev->update('x_adm_rekap_fisik_organ_translate', $dataArray);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
}
|
|
// echo ($this->db_onedev->last_query());
|
|
// exit;
|
|
|
|
|
|
// // Print result (for demonstration)
|
|
// echo (json_encode($dataArray));
|
|
}
|
|
function saveFisikUsg($data, $regNo, $userID, $lang)
|
|
{
|
|
|
|
// if (count($data) > 0) {
|
|
// return;
|
|
// }
|
|
// Initialize result array
|
|
// $prm = $this->sys_input;
|
|
// $data = $prm['data'];
|
|
// $regNo = $prm['reg_no'];
|
|
// $userID = $prm['userID'];
|
|
// $lang = 2;
|
|
// echo json_encode($prm);
|
|
// exit;
|
|
$dataArray = [];
|
|
|
|
|
|
|
|
// Transform data
|
|
foreach ($data as $item) {
|
|
// `Hepar (USG ABDOMEN)` as hepar,
|
|
// `V. Fellea ( USG ABDOMEN)` as fellea,
|
|
// `Pancreas (USG ABDOMEN)` as pancreas,
|
|
// `Lien (USG ABDOMEN)` as lien,
|
|
// `Right Kidney (USG ABDOMEN)` as right_Kidney,
|
|
// `Left Kidney (USG ABDOMEN)` as left_Kidney,
|
|
// `Buli-Buli (USG ABDOMEN)` as builiBuli,
|
|
// `Prostat (USG ABDOMEN)` as prostat,
|
|
// `Uterus dan Adnexa (USG ABDOMEN)` as uterus,
|
|
// `Kesan (USG ABDOMEN)` as kesan,
|
|
// `SARAN (USG ABDOMEN)` as saran,
|
|
// `Appendix (USG ABDOMEN)` as appendix,
|
|
if ($item['field'] == "hepar") {
|
|
$dataArray['`Hepar (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "fellea") {
|
|
$dataArray['`V. Fellea ( USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "pancreas") {
|
|
$dataArray['`Pancreas (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "lien") {
|
|
$dataArray['`Lien (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "right_Kidney") {
|
|
$dataArray['`Right Kidney (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "left_Kidney") {
|
|
$dataArray['`Left Kidney (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "builiBuli") {
|
|
$dataArray['`Buli-Buli (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "prostat") {
|
|
$dataArray['`Prostat (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "uterus") {
|
|
$dataArray['`Uterus dan Adnexa (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "kesan") {
|
|
$dataArray['`Kesan (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "saran") {
|
|
$dataArray['`SARAN (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
if ($item['field'] == "appendix") {
|
|
$dataArray['`Appendix (USG ABDOMEN)`'] = $item['resultEng'];
|
|
}
|
|
}
|
|
$dataArray['langID'] = $lang;
|
|
$dataArray['REG_NO'] = $regNo;
|
|
$dataArray['userID'] = $userID;
|
|
// echo json_encode($dataArray);
|
|
// exit;
|
|
|
|
$dataArray['updated'] = date('Y-m-d H:i:s');
|
|
$sql = "SELECT * FROM x_adm_rekap_fisik_usg_translate
|
|
WHERE REG_NO = ?
|
|
AND langID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$regNo,
|
|
$lang
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error insert log data");
|
|
exit;
|
|
}
|
|
$dataCek = $query->result_array();
|
|
|
|
if (count($dataCek) == 0) {
|
|
$dataArray['created'] = date('Y-m-d H:i:s');
|
|
# code...
|
|
$qry = $this->db_onedev->insert('x_adm_rekap_fisik_usg_translate', $dataArray);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
} else {
|
|
$this->db_onedev->where('REG_NO', $regNo);
|
|
$qry = $this->db_onedev->update('x_adm_rekap_fisik_usg_translate', $dataArray);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
// // Print result (for demonstration)
|
|
// echo (json_encode($dataArray));
|
|
}
|
|
function saveFisikVital($data, $regNo, $userID, $lang)
|
|
{
|
|
// if (count($data) > 0) {
|
|
// return;
|
|
// }
|
|
// Initialize result array
|
|
// $prm = $this->sys_input;
|
|
// $data = $prm['data'];
|
|
// $regNo = $prm['reg_no'];
|
|
// $userID = $prm['userID'];
|
|
// $lang = 2;
|
|
// echo json_encode($prm);
|
|
// exit;
|
|
$dataArray = [];
|
|
|
|
|
|
|
|
// Transform data
|
|
foreach ($data as $item) {
|
|
$dataArray[$item['field']] = $item['resultEng'];
|
|
}
|
|
$dataArray['langID'] = $lang;
|
|
$dataArray['REG_NO'] = $regNo;
|
|
$dataArray['userID'] = $userID;
|
|
|
|
$dataArray['updated'] = date('Y-m-d H:i:s');
|
|
$sql = "SELECT * FROM x_adm_rekap_fisik_vital_translate
|
|
WHERE REG_NO = ?
|
|
AND langID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$regNo,
|
|
$lang
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error insert log data");
|
|
exit;
|
|
}
|
|
$dataCek = $query->result_array();
|
|
|
|
if (count($dataCek) == 0) {
|
|
$dataArray['created'] = date('Y-m-d H:i:s');
|
|
# code...
|
|
$qry = $this->db_onedev->insert('x_adm_rekap_fisik_vital_translate', $dataArray);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
} else {
|
|
$this->db_onedev->where('REG_NO', $regNo);
|
|
$qry = $this->db_onedev->update('x_adm_rekap_fisik_vital_translate', $dataArray);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
// // Print result (for demonstration)
|
|
// echo (json_encode($dataArray));
|
|
}
|
|
function saveFisikSaran($data, $regNo, $userID, $lang)
|
|
{
|
|
// if (count($data) > 0) {
|
|
// return;
|
|
// }
|
|
// Initialize result array
|
|
// $prm = $this->sys_input;
|
|
// $data = $prm['data'];
|
|
// $regNo = $prm['reg_no'];
|
|
// $userID = $prm['userID'];
|
|
// $lang = 2;
|
|
// echo json_encode($prm);
|
|
// exit;
|
|
|
|
// REG_NO varchar(50)
|
|
// langID int
|
|
// Saran text
|
|
// userID int [0]
|
|
// created datetime
|
|
// updated datetime
|
|
|
|
$dataInsert = array(
|
|
"REG_NO" => $regNo,
|
|
"langID" => $lang,
|
|
"Saran" => $data['saran_eng'],
|
|
"userID" => $userID,
|
|
"updated" => date('Y-m-d H:i:s'),
|
|
);
|
|
|
|
|
|
$sql = "SELECT * FROM x_adm_rekap_fisik_saran_translate
|
|
WHERE REG_NO = ?
|
|
AND langID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$regNo,
|
|
$lang
|
|
]);
|
|
if (!$query) {
|
|
$this->sys_error_db("Error insert log data");
|
|
exit;
|
|
}
|
|
$dataCek = $query->result_array();
|
|
|
|
if (count($dataCek) == 0) {
|
|
$dataInsert['created'] = date('Y-m-d H:i:s');
|
|
# code...
|
|
$qry = $this->db_onedev->insert('x_adm_rekap_fisik_saran_translate', $dataInsert);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
} else {
|
|
$this->db_onedev->where('REG_NO', $regNo);
|
|
$qry = $this->db_onedev->update('x_adm_rekap_fisik_saran_translate', $dataInsert);
|
|
if (!$qry) {
|
|
$message = $this->db_onedev->error();
|
|
$message['qry'] = $this->db_onedev->last_query();
|
|
$this->sys_error($message);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
// // Print result (for demonstration)
|
|
// echo (json_encode($dataArray));
|
|
}
|
|
}
|