Files
2026-04-15 15:23:57 +07:00

1025 lines
47 KiB
PHP

<?php
class Framingham extends MY_Controller
{
var $db_onedev;
public function index()
{
echo "Resultentry API";
}
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
$this->load->helper(array('form', 'url'));
}
function searchcompany(){
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$max_rst = 12;
$tot_count =0;
$q = [
'search' => '%'
];
if ($prm['search'] != '')
{
$q['search'] = "%{$prm['search']}%";
}
// QUERY TOTAL
$sql = "SELECT count(*) as total
FROM m_company
JOIN m_mou ON M_MouM_CompanyID = M_CompanyID AND M_MouIsActive = 'Y'
WHERE
M_CompanyName like ?
AND M_CompanyIsActive = 'Y'";
$query = $this->db_onedev->query($sql,$q['search']);
//echo $query;
//echo $this->db_onedev->last_query();
if ($query) {
$tot_count = $query->result_array()[0]["total"];
}
else {
$this->sys_error_db("m_city count",$this->db_onedev);
exit;
}
$sql = "SELECT 0 as id, 'Semua Kel. Pelanggan' as name, '' as mous
UNION
SELECT M_CompanyID as id, M_CompanyName as name, '' as mous
FROM m_company
JOIN m_mou ON M_MouM_CompanyID = M_CompanyID AND M_MouIsActive = 'Y'
WHERE
M_CompanyName like ? AND
M_CompanyIsActive = 'Y'
ORDER BY name DESC
";
$query = $this->db_onedev->query($sql, array($q['search']));
if($query) {
$rows = $query->result_array();
if($rows){
foreach($rows as $k => $v){
$sql = "SELECT '0' as id, 'Semua' as name
UNION
SELECT M_MouID as id, M_MouName as name
FROM m_mou
WHERE
M_MouM_CompanyID = {$v['id']} AND M_MouIsActive = 'Y'";
$details = $this->db_onedev->query($sql)->result_array();
$rows[$k]['mous'] = $details;
}
}
//echo $this->db_onedev->last_query();
$result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows));
$this->sys_ok($result);
}
else {
$this->sys_error_db("m_company rows",$this->db_onedev);
exit;
}
}
public function search()
{
$prm = $this->sys_input;
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$company = $prm["company"];
$search = $prm["search"];
$startdate = $prm['startdate'];
$enddate = $prm['enddate'];
if(!isset($prm['current_page']))
$prm['current_page'] = 1;
$number_limit = 10;
$number_offset = ($prm['current_page'] - 1) * $number_limit ;
//$sql_param = array();
$sql = " SELECT count(*) as total
FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_sex ON M_PatientM_SexID = M_SexID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
JOIN m_mou ON T_OrderHeaderM_MouID = M_MouID
WHERE
T_OrderHeaderIsActive = 'Y' AND
DATE(T_OrderHeaderDate) BETWEEN '{$startdate}' AND '{$enddate}' AND
($company = 0 OR($company > 0 AND T_OrderHeaderM_CompanyID = $company)) AND
(M_PatientName like concat('%','{$search}','%') OR T_OrderHeaderLabNumber like concat('%','{$search}','%')) AND
CAST(SUBSTRING_INDEX(T_OrderHeaderM_PatientAge, ' ', 1) AS UNSIGNED) >= 20
";
//echo $sql;
$query = $this->db_onedev->query($sql);
$tot_count = 0;
$tot_page = 0;
if ($query) {
$tot_count = $query->result_array()[0]["total"];
$tot_page = ceil($tot_count/$number_limit);
} else {
$this->sys_error_db("t_orderheader count", $this->db_onedev);
exit;
}
$sql = "SELECT T_OrderHeaderID,
T_OrderHeaderLabNumber as ordernumber,
concat(M_TitleName,'. ',M_PatientName) as M_PatientName,
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as orderdate,
T_OrderHeaderM_PatientAge,
CAST(SUBSTRING_INDEX(T_OrderHeaderM_PatientAge, ' ', 1) AS UNSIGNED) AS age,
M_CompanyName,
M_MouName,
M_SexCode,
IFNULL(Framingham_DataID,0) as Framingham_DataID
FROM
t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
JOIN m_title ON M_PatientM_TitleID = M_TitleID
JOIN m_sex ON M_PatientM_SexID = M_SexID
JOIN m_company ON T_OrderHeaderM_CompanyID = M_CompanyID
JOIN m_mou ON T_OrderHeaderM_MouID = M_MouID
LEFT JOIN framingham_data ON Framingham_DataT_OrderHeaderID = T_OrderHeaderID AND Framingham_DataIsActive = 'Y'
WHERE
T_OrderHeaderIsActive = 'Y' AND
DATE(T_OrderHeaderDate) BETWEEN '{$startdate}' AND '{$enddate}' AND
($company = 0 OR($company > 0 AND T_OrderHeaderM_CompanyID = $company)) AND
(M_PatientName like concat('%','{$search}','%') OR T_OrderHeaderLabNumber like concat('%','{$search}','%')) AND
CAST(SUBSTRING_INDEX(T_OrderHeaderM_PatientAge, ' ', 1) AS UNSIGNED) >= 20
GROUP BY T_OrderHeaderID
ORDER BY T_OrderHeaderID DESC
limit $number_limit offset $number_offset";
//echo $sql;
$query = $this->db_onedev->query($sql);
$rows = $query->result_array();
//echo $this->db_onedev->last_query();
/* if($rows){
foreach($rows as $k => $v){
$rows[$k]['langs'] = $this->getlangs($v['trx_id']);
$rows[$k]['doctors'] = $this->getdoctors();
}
}
*/
//$this->_add_address($rows);
$result = array("total" => $tot_page, "records" => $rows, "sql"=> $this->db_onedev->last_query());
$this->sys_ok($result);
exit;
}
function getdatadetails(){
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$id = $prm['T_OrderHeaderID'];
// CHD & STROKE
$gender = $prm['M_SexCode'];
$age = $prm['age'];
$systolic = 0;
$smoking = "";
$riwayat_diabetes = "";
$glukosa_puasa = "";
$hba1c = "";
$diabetes = "";
// CHD
$chol = 0;
$hdl = 0;
// STROKE
$af = "";
$hypertension = "";
$history_chd = "";
$lvh = "";
$sql = "select count(*) tot from framingham_data where Framingham_DataT_OrderHeaderID=? AND Framingham_DataIsActive = 'Y'";
$c_total = $this->db_onedev->query($sql,array($id))->row();
$rows = array();
if ($c_total->tot > 0 ) {
$sql = "SELECT Framingham_DataID,
Framingham_DataT_OrderHeaderID,
CONCAT(Framingham_DataSistolic,'/',Framingham_DataDiastolic) tekanandarah,
Framingham_DataSistolic,
Framingham_DataDiastolic,
Framingham_DataChol,
Framingham_DataHDL,
Framingham_DataInAtrialFibrillation,
IF(Framingham_DataInAtrialFibrillation = 'Y','Ya','Tidak') AtrialFibrillation,
Framingham_DataOnAntiHypertensiveRx,
IF(Framingham_DataOnAntiHypertensiveRx = 'Y','Ya','Tidak') AntiHypertensiveRx,
Framingham_DataHistoryofSmoking,
IF(Framingham_DataHistoryofSmoking = 'Y','Ya','Tidak') HistoryofSmoking,
Framingham_DataHistoryofDiabetes,
IF(Framingham_DataHistoryofDiabetes = 'Y','Ya','Tidak') HistoryofDiabetes,
Framingham_DataHistoryofPeripheralVascular,
IF(Framingham_DataHistoryofPeripheralVascular = 'Y','Ya','Tidak') HistoryofPeripheralVascular,
Framingham_DataECGLVH,
IF(Framingham_DataECGLVH = 'Y','Ya','Tidak') ECGLVH,
Framingham_DataCalculated10RiskofCHD,
Framingham_DataCalculated10RiskofStroke,
Framingham_DataCalculated10RiskofCardiovascular,
'' fisik_umum,
Framingham_RiskOfChdFramingham_DataID,
Framingham_RiskOfChdSystolic,
Framingham_RiskOfChdSmooking,
Framingham_RiskOfChdCholHdl,
Framingham_RiskOfChdEcg,
Framingham_RiskOfChdAge,
Framingham_RiskOfChdDiabet,
Framingham_RiskOfChdResult1,
Framingham_RiskOfChdResult2,
Framingham_RiskOfChdResult3,
Framingham_RiskOfChdResult4,
Framingham_RiskOfChdResultFinal,
Framingham_RiskOfChdResultFinalPercent,
Framingham_RiskOfChdCardiovascularRisk,
Framingham_RiskOfChdCardiovascularRiskPercent,
Framingham_RiskOfStrokeAge,
Framingham_RiskOfStrokeSystolic,
Framingham_RiskOfStrokeHipertensi,
Framingham_RiskOfStrokeDiabet,
Framingham_RiskOfStrokeSmooking,
Framingham_RiskOfStrokeVascularDisease,
Framingham_RiskOfStrokeAtrialFIB,
Framingham_RiskOfStrokeEcg,
Framingham_RiskOfStrokeHipertensi2,
Framingham_RiskOfStrokeResult1,
Framingham_RiskOfStrokeFinal,
Framingham_RiskOfStrokeFinalPercent,
'' chd,
'' stroke
FROM
framingham_data
JOIN framingham_riskofchd ON Framingham_RiskOfChdFramingham_DataID = Framingham_DataID AND Framingham_RiskOfChdIsActive = 'Y'
JOIN framingham_riskofstroke ON Framingham_RiskOfStrokeFramingham_DataID = Framingham_DataID AND Framingham_RiskOfStrokeIsActive = 'Y'
WHERE Framingham_DataT_OrderHeaderID = $id AND Framingham_DataIsActive = 'Y'";
$rows = $this->db_onedev->query($sql)->result_array();
foreach($rows as $k => $v){
// Check if gender is male ("L")
if ($gender == "L") {
$query ="SELECT 'SYSTOLIC' test, 'LN(SYSTOLIC)' rumus, '-0,9119' faktorkali, '{$v['Framingham_RiskOfChdSystolic']}' hasil
UNION SELECT 'SMOOKING' test, 'IF(SMOOKING=Ya,1,0)' rumus, '-0,2767' faktorkali, '{$v['Framingham_RiskOfChdSmooking']}' hasil
UNION SELECT 'CHOL TOT/HDL' test, 'LN(CHOL.TOT/HDL)' rumus, '-0,7181' faktorkali, '{$v['Framingham_RiskOfChdCholHdl']}' hasil
UNION SELECT 'ECG' test, 'IF(ECG=Ya,1,0)' rumus, '-0,5865' faktorkali, '{$v['Framingham_RiskOfChdEcg']}' hasil
UNION SELECT 'USIA' test, 'LN(UMUR)' rumus, '-1,4792' faktorkali, '{$v['Framingham_RiskOfChdAge']}' hasil
UNION SELECT 'DIABET' test, 'IF(DIABET=Ya,1,0)' rumus, '-0,1759' faktorkali, '{$v['Framingham_RiskOfChdDiabet']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, '{$v['Framingham_RiskOfChdResult1']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 2' faktorkali, '{$v['Framingham_RiskOfChdResult2']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 3' faktorkali, '{$v['Framingham_RiskOfChdResult3']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 4' faktorkali, '{$v['Framingham_RiskOfChdResult4']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, '{$v['Framingham_RiskOfChdResultFinalPercent']}' hasil
UNION SELECT '' test, '' rumus, 'Cardiovascular Risk' faktorkali, '{$v['Framingham_RiskOfChdCardiovascularRiskPercent']}' hasil";
$chd = $this->db_onedev->query($query)->result_array();
//echo $this->db_onedev->last_query();
$rows[$k]['chd'] = $chd;
$query ="SELECT 'USIA' test, 'USIA' rumus, '0,0505' faktorkali, '{$v['Framingham_RiskOfStrokeAge']}' hasil
UNION SELECT 'SYSTOLIC' test, 'SYSTOLIC' rumus, '0,014' faktorkali, '{$v['Framingham_RiskOfStrokeSystolic']}' hasil
UNION SELECT 'HIPERTENSI' test, 'Ya=1, No=0' rumus, '0,3263' faktorkali, '{$v['Framingham_RiskOfStrokeHipertensi']}' hasil
UNION SELECT 'DIABET' test, 'Ya=1, No=0' rumus, '0,3384' faktorkali, '{$v['Framingham_RiskOfStrokeDiabet']}' hasil
UNION SELECT 'SMOKING' test, 'Ya=1, No=0' rumus, '0,5147' faktorkali, '{$v['Framingham_RiskOfStrokeSmooking']}' hasil
UNION SELECT 'VASCULAR DISEASE' test, 'Ya=1, No=0' rumus, '0,5195' faktorkali, '{$v['Framingham_RiskOfStrokeVascularDisease']}' hasil
UNION SELECT 'ATRIAL FIB' test, 'Ya=1, No=0' rumus, '0,6061' faktorkali, '{$v['Framingham_RiskOfStrokeAtrialFIB']}' hasil
UNION SELECT 'ECG' test, 'Ya=1, No=0' rumus, '0,8415' faktorkali, '{$v['Framingham_RiskOfStrokeEcg']}' hasil
UNION SELECT 'Faktor lain' test, '' rumus, '' faktorkali, '-5,677' hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, '{$v['Framingham_RiskOfStrokeResult1']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, '{$v['Framingham_RiskOfStrokeFinalPercent']}' hasil";
$stroke = $this->db_onedev->query($query)->result_array();
$rows[$k]['stroke'] = $stroke;
} else {
// Calculate the risk for female
$query ="SELECT 'SYSTOLIC' test, 'LN(SYSTOLIC)' rumus, '-0,9119' faktorkali, '{$v['Framingham_RiskOfChdSystolic']}' hasil
UNION SELECT 'SMOOKING' test, 'IF(SMOOKING=Ya,1,0)' rumus, '-0,2767' faktorkali, '{$v['Framingham_RiskOfChdSmooking']}' hasil
UNION SELECT 'CHOL TOT/HDL' test, 'LN(CHOL.TOT/HDL)' rumus, '-0,7181' faktorkali, '{$v['Framingham_RiskOfChdCholHdl']}' hasil
UNION SELECT 'ECG' test, 'IF(ECG=Ya,1,0)' rumus, '-0,5865' faktorkali, '{$v['Framingham_RiskOfChdEcg']}' hasil
UNION SELECT 'USIA' test, 'LN(UMUR/74)^2' rumus, '1,8515' faktorkali, '{$v['Framingham_RiskOfChdAge']}' hasil
UNION SELECT 'Faktor Lain' test, '' rumus, '' faktorkali, '-5,8549' hasil
UNION SELECT 'DIABET' test, 'IF(DIABET=Ya,1,0)' rumus, '0,3758' faktorkali, '{$v['Framingham_RiskOfChdDiabet']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, '{$v['Framingham_RiskOfChdResult1']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 2' faktorkali, '{$v['Framingham_RiskOfChdResult2']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 3' faktorkali, '{$v['Framingham_RiskOfChdResult3']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil 4' faktorkali, '{$v['Framingham_RiskOfChdResult4']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, '{$v['Framingham_RiskOfChdResultFinalPercent']}' hasil
UNION SELECT '' test, '' rumus, 'Cardiovascular Risk' faktorkali, '{$v['Framingham_RiskOfChdCardiovascularRiskPercent']}' hasil";
$chd = $this->db_onedev->query($query)->result_array();
$rows[$k]['chd'] = $chd;
$query ="SELECT 'USIA' test, 'USIA' rumus, '0,0505' faktorkali, '{$v['Framingham_RiskOfStrokeAge']}' hasil
UNION SELECT 'SYSTOLIC' test, 'SYSTOLIC' rumus, '0,0197' faktorkali, '{$v['Framingham_RiskOfStrokeSystolic']}' hasil
UNION SELECT 'HIPERTENSI' test, 'Ya=1, No=0' rumus, '2,5432' faktorkali, '{$v['Framingham_RiskOfStrokeHipertensi']}' hasil
UNION SELECT 'DIABET' test, 'Ya=1, No=0' rumus, '0,5442' faktorkali, '{$v['Framingham_RiskOfStrokeDiabet']}' hasil
UNION SELECT 'SMOKING' test, 'Ya=1, No=0' rumus, '0,5294' faktorkali, '{$v['Framingham_RiskOfStrokeSmooking']}' hasil
UNION SELECT 'VASCULAR DISEASE' test, 'Ya=1, No=0' rumus, '0,4326' faktorkali, '{$v['Framingham_RiskOfStrokeVascularDisease']}' hasil
UNION SELECT 'ATRIAL FIB' test, 'Ya=1, No=0' rumus, '1,1497' faktorkali, '{$v['Framingham_RiskOfStrokeAtrialFIB']}' hasil
UNION SELECT 'ECG' test, 'Ya=1, No=0' rumus, '0,8488' faktorkali, '{$v['Framingham_RiskOfStrokeEcg']}' hasil
UNION SELECT 'HIPERTENSI' test, 'Ya=1, No=0' rumus, '-0,0134' faktorkali, '{$v['Framingham_RiskOfStrokeHipertensi2']}' hasil
UNION SELECT 'Faktor lain' test, '' rumus, '' faktorkali, '-7,5766' hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, '{$v['Framingham_RiskOfStrokeResult1']}' hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, '{$v['Framingham_RiskOfStrokeFinalPercent']}' hasil";
$stroke = $this->db_onedev->query($query)->result_array();
$rows[$k]['stroke'] = $stroke;
}
}
}else{
$sql = "SELECT 0 Framingham_DataID,
T_OrderHeaderID Framingham_DataT_OrderHeaderID,
'/' tekanandarah,
'' Framingham_DataSistolic,
'' Framingham_DataDiastolic,
'' Framingham_DataChol,
'' Framingham_DataHDL,
'' Framingham_DataInAtrialFibrillation,
'' AtrialFibrillation,
'' Framingham_DataOnAntiHypertensiveRx,
'' AntiHypertensiveRx,
'' Framingham_DataHistoryofSmoking,
'' HistoryofSmoking,
'' Framingham_DataHistoryofDiabetes,
'' HistoryofDiabetes,
'' Framingham_DataHistoryofPeripheralVascular,
'' HistoryofPeripheralVascular,
'' Framingham_DataECGLVH,
'' ECGLVH,
'' Framingham_DataCalculated10RiskofCHD,
'' Framingham_DataCalculated10RiskofStroke,
'' Framingham_DataCalculated10RiskofCardiovascular,
'' fisik_umum,
0 Framingham_RiskOfChdFramingham_DataID,
'' Framingham_RiskOfChdSystolic,
'' Framingham_RiskOfChdSmooking,
'' Framingham_RiskOfChdCholHdl,
'' Framingham_RiskOfChdEcg,
'' Framingham_RiskOfChdAge,
'' Framingham_RiskOfChdDiabet,
'' Framingham_RiskOfChdResult1,
'' Framingham_RiskOfChdResult2,
'' Framingham_RiskOfChdResult3,
'' Framingham_RiskOfChdResult4,
'' Framingham_RiskOfChdResultFinal,
'' Framingham_RiskOfChdResultFinalPercent,
'' Framingham_RiskOfChdCardiovascularRisk,
'' Framingham_RiskOfChdCardiovascularRiskPercent,
'' Framingham_RiskOfStrokeAge,
'' Framingham_RiskOfStrokeSystolic,
'' Framingham_RiskOfStrokeHipertensi,
'' Framingham_RiskOfStrokeDiabet,
'' Framingham_RiskOfStrokeSmooking,
'' Framingham_RiskOfStrokeVascularDisease,
'' Framingham_RiskOfStrokeAtrialFIB,
'' Framingham_RiskOfStrokeEcg,
'' Framingham_RiskOfStrokeHipertensi2,
'' Framingham_RiskOfStrokeResult1,
'' Framingham_RiskOfStrokeFinal,
'' Framingham_RiskOfStrokeFinalPercent,
'' chd,
'' stroke,
'' riwayat_diabetes,
'' glukosa_puasa,
'' hba1c
FROM
t_orderheader
WHERE T_OrderHeaderID = $id AND T_OrderHeaderIsActive = 'Y'";
$rows = $this->db_onedev->query($sql)->result_array();
foreach($rows as $k => $v){
$sql = "SELECT So_ResultEntryFisikUmumDetails
FROM t_orderdetail
JOIN so_resultentry ON T_OrderDetailT_OrderHeaderID = $id AND
So_ResultEntryT_OrderDetailID = T_OrderDetailID AND
So_ResultEntryIsActive = 'Y' AND
So_ResultEntrySo_TemplateName = 'FISIK UMUM'
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID AND
So_ResultEntryFisikUmumM_LangID= 1 AND
So_ResultEntryFisikUmumType = 'fisik'";
$f_details = $this->db_onedev->query($sql)->row();
if($f_details){
$f_data = json_decode($f_details->So_ResultEntryFisikUmumDetails,true);
foreach ($f_data as $section) {
// Loop through the details within each section
foreach ($section['details'] as $detail) {
// Check if the label is 'Tekanan Darah'
if ($detail['label'] == 'Tekanan Darah') {
// Extract the systolic and diastolic values
list($systolic, $diastolic) = explode('/', $detail['value']);
$rows[$k]['Framingham_DataSistolic'] = $systolic ;
$rows[$k]['Framingham_DataDiastolic'] = $diastolic ;
$rows[$k]['tekanandarah'] = $systolic."/".$diastolic;
$systolic = $systolic ;
}
}
}
$sql = "SELECT T_OrderDetailResult
FROM t_orderdetail
WHERE T_OrderDetailT_OrderHeaderID = $id AND
T_OrderDetailT_TestName = 'Cholesterol' AND
T_OrderDetailT_TestIsResult = 'Y' AND
T_OrderDetailIsActive = 'Y'";
$cholesterol = $this->db_onedev->query($sql)->row();
$rows[$k]['Framingham_DataChol'] = $cholesterol->T_OrderDetailResult;
$chol = $cholesterol->T_OrderDetailResult;
$sql = "SELECT T_OrderDetailResult
FROM t_orderdetail
WHERE T_OrderDetailT_OrderHeaderID = $id AND
T_OrderDetailT_TestName = 'HDL Cholesterol' AND
T_OrderDetailT_TestIsResult = 'Y' AND
T_OrderDetailIsActive = 'Y'";
$hdl = $this->db_onedev->query($sql)->row();
$rows[$k]['Framingham_DataHDL'] = $hdl->T_OrderDetailResult;
$hdl = $hdl->T_OrderDetailResult;
$sql = "SELECT COUNT(*) is_ecg_treadmill
FROM t_orderdetail
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID
JOIN so_resultentry_category_result ON So_ResultEntryCategoryResultSo_ResultEntryID = So_ResultEntryID AND
So_ResultEntryCategoryResultValue = 'AF' AND
So_ResultEntryCategoryResultIsActive = 'Y'
WHERE T_OrderDetailT_OrderHeaderID = $id AND
(T_OrderDetailT_TestName = 'ECG' OR T_OrderDetailT_TestName = 'Treadmill') AND
T_OrderDetailT_TestIsResult = 'Y' AND
T_OrderDetailIsActive = 'Y'";
$is_ecg_treadmill_af = $this->db_onedev->query($sql)->row();
if($is_ecg_treadmill_af->is_ecg_treadmill_af > 0){
$rows[$k]['Framingham_DataInAtrialFibrillation'] = 'Y';
$rows[$k]['AtrialFibrillation'] = 'Ya';
$af = 'Y';
}else{
$rows[$k]['Framingham_DataInAtrialFibrillation'] = 'N';
$rows[$k]['AtrialFibrillation'] = 'Tidak';
$af = 'N';
}
$sql = "SELECT COUNT(*) is_ecg_treadmill
FROM t_orderdetail
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID
JOIN so_resultentry_category_result ON So_ResultEntryCategoryResultSo_ResultEntryID = So_ResultEntryID AND
So_ResultEntryCategoryResultValue = 'LVH' AND
So_ResultEntryCategoryResultIsActive = 'Y'
WHERE T_OrderDetailT_OrderHeaderID = $id AND
(T_OrderDetailT_TestName = 'ECG' OR T_OrderDetailT_TestName = 'Treadmill') AND
T_OrderDetailT_TestIsResult = 'Y' AND
T_OrderDetailIsActive = 'Y'";
$is_ecg_treadmill_lv = $this->db_onedev->query($sql)->row();
if($is_ecg_treadmill_lvh->is_ecg_treadmill_lvh > 0){
$rows[$k]['Framingham_DataECGLVH'] = 'Y';
$rows[$k]['ECGLVH'] = 'Ya';
$lvh = 'Y';
}else{
$rows[$k]['Framingham_DataECGLVH'] = 'N';
$rows[$k]['ECGLVH'] = 'Tidak';
$lvh = 'N';
}
$sql = "SELECT So_ResultEntryFisikUmumDetails
FROM t_orderdetail
JOIN so_resultentry ON T_OrderDetailT_OrderHeaderID = $id AND
So_ResultEntryT_OrderDetailID = T_OrderDetailID AND
So_ResultEntryIsActive = 'Y' AND
So_ResultEntrySo_TemplateName = 'FISIK UMUM'
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID AND
So_ResultEntryFisikUmumM_LangID= 1 AND
So_ResultEntryFisikUmumType = 'riwayat'";
$f_riwayats = $this->db_onedev->query($sql)->row();
$f_riwayat = json_decode($f_riwayats->So_ResultEntryFisikUmumDetails,true);
foreach ($f_riwayat as $section) {
// Loop through the details within each section
foreach ($section['details'] as $detail) {
// Check if the label is 'Obat anti hypertensi'
if ($detail['label'] == 'Obat anti hypertensi') {
if($detail['chx']){
$rows[$k]['Framingham_DataOnAntiHypertensiveRx'] = 'Y';
$rows[$k]['AntiHypertensiveRx'] = 'Ya';
$hypertension = 'Y';
}else{
$rows[$k]['Framingham_DataOnAntiHypertensiveRx'] = 'N';
$rows[$k]['AntiHypertensiveRx'] = 'Tidak';
$hypertension = 'N';
}
}
}
}
$sql = "SELECT So_ResultEntryFisikUmumDetails
FROM t_orderdetail
JOIN so_resultentry ON T_OrderDetailT_OrderHeaderID = $id AND
So_ResultEntryT_OrderDetailID = T_OrderDetailID AND
So_ResultEntryIsActive = 'Y' AND
So_ResultEntrySo_TemplateName = 'FISIK UMUM'
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID AND
So_ResultEntryFisikUmumM_LangID= 1 AND
So_ResultEntryFisikUmumType = 'riwayat'";
$rokok = $this->checkSmokingStatus($f_riwayat);
if($rokok === 'Y'){
$rows[$k]['Framingham_DataHistoryofSmoking'] = $rokok;
$rows[$k]['HistoryofSmoking'] = 'Ya';
}else{
$rows[$k]['Framingham_DataHistoryofSmoking'] = $rokok;
$rows[$k]['HistoryofSmoking'] = 'Tidak';
}
$smoking = $rokok;
$rows[$k]['fisik_umum'] = $f_riwayat;
foreach ($f_riwayat as $item) {
if ($item['title'] === 'RIWAYAT PENYAKIT') {
foreach ($item['details'] as $detail) {
foreach ($detail['details'] as $subDetail) {
if ($subDetail['label'] === 'Diabetes Militus (Kencing manis)') {
$chxValue = $subDetail['chx'];
if($chxValue){
$riwayat_diabetes = 'Y';
$rows[$k]['riwayat_diabetes'] = $riwayat_diabetes;
}else{
$riwayat_diabetes = 'N';
$rows[$k]['riwayat_diabetes'] = $riwayat_diabetes;
}
}
}
}
}
}
$sql = "SELECT T_OrderDetailResult
FROM t_orderdetail
WHERE T_OrderDetailT_OrderHeaderID = $id AND
T_OrderDetailT_TestName = 'Glukosa Darah Puasa' AND
T_OrderDetailT_TestIsResult = 'Y' AND
T_OrderDetailIsActive = 'Y'";
$result_glukosa_puasa = $this->db_onedev->query($sql)->row();
$glukosa_puasa = $result_glukosa_puasa->T_OrderDetailResult;
$rows[$k]['glukosa_puasa'] = $glukosa_puasa;
$sql = "SELECT T_OrderDetailResult
FROM t_orderdetail
WHERE T_OrderDetailT_OrderHeaderID = $id AND
T_OrderDetailT_TestName = 'HbA1c' AND
T_OrderDetailT_TestIsResult = 'Y' AND
T_OrderDetailIsActive = 'Y'";
$result_hba1c = $this->db_onedev->query($sql)->row();
$hba1c = $result_hba1c->T_OrderDetailResult;
$rows[$k]['hba1c'] = $hba1c;
if($riwayat_diabetes == 'Y' || $glukosa_puasa > 126 || $hba1c >= 6.5){
$diabetes = 'Y';
$rows[$k]['Framingham_DataHistoryofDiabetes'] = 'Y';
$rows[$k]['HistoryofDiabetes'] = 'Ya';
}else{
$diabetes = 'N';
$rows[$k]['Framingham_DataHistoryofDiabetes'] ='N';
$rows[$k]['HistoryofDiabetes'] = 'Tidak';
}
$cardiovaskuler = $this->checkPeripheralVascular($f_riwayat);
if($cardiovaskuler === 'Y'){
$rows[$k]['Framingham_DataHistoryofPeripheralVascular'] = $cardiovaskuler;
$rows[$k]['HistoryofPeripheralVascular'] = 'Ya';
}else{
$rows[$k]['Framingham_DataHistoryofPeripheralVascular'] = $cardiovaskuler;
$rows[$k]['HistoryofPeripheralVascular'] = 'Tidak';
}
$history_chd = $cardiovaskuler;
// Define helper function for IF conditions (returns 1 if condition met, else 0)
// Check if gender is male ("L")
if ($gender == "L") {
// CHD
$Framingham_RiskOfChdSystolic = log($systolic) * -0.9119;
$rows[$k]['Framingham_RiskOfChdSystolic'] = $Framingham_RiskOfChdSystolic;
$Framingham_RiskOfChdSmooking = $this->if_condition($smoking) * -0.2767;
$rows[$k]['Framingham_RiskOfChdSmooking'] = $Framingham_RiskOfChdSmooking;
$Framingham_RiskOfChdCholHdl = log($chol / $hdl) * -0.7181;
$rows[$k]['Framingham_RiskOfChdCholHdl'] = $Framingham_RiskOfChdCholHdl;
$Framingham_RiskOfChdEcg = $this->if_condition($lvh) * -0.5865;
$rows[$k]['Framingham_RiskOfChdEcg'] = $Framingham_RiskOfChdEcg;
$Framingham_RiskOfChdAge = log($age) * -1.4792;
$rows[$k]['Framingham_RiskOfChdAge'] = $Framingham_RiskOfChdAge;
$Framingham_RiskOfChdDiabet = $this->if_condition($diabetes) * - 0.1759;
$rows[$k]['Framingham_RiskOfChdDiabet'] = $Framingham_RiskOfChdDiabet;
$Framingham_RiskOfChdResult1 = $Framingham_RiskOfChdSystolic + $Framingham_RiskOfChdSmooking + $Framingham_RiskOfChdCholHdl + $Framingham_RiskOfChdEcg + $Framingham_RiskOfChdAge + $Framingham_RiskOfChdDiabet;
$rows[$k]['Framingham_RiskOfChdResult1'] = $Framingham_RiskOfChdResult1;
$Framingham_RiskOfChdResult2 = 11.1122 + $Framingham_RiskOfChdResult1;
$rows[$k]['Framingham_RiskOfChdResult2'] = $Framingham_RiskOfChdResult2;
$Framingham_RiskOfChdResult3 = log(10)-(4.4181 + $Framingham_RiskOfChdResult2);
$rows[$k]['Framingham_RiskOfChdResult3'] = $Framingham_RiskOfChdResult3;
$Framingham_RiskOfChdResult4 = exp(-0.3155-(0.2784 * $Framingham_RiskOfChdResult2));
$rows[$k]['Framingham_RiskOfChdResult4'] = $Framingham_RiskOfChdResult4;
$Framingham_RiskOfChdResultFinal = 1-(EXP(-EXP($Framingham_RiskOfChdResult3/$Framingham_RiskOfChdResult4)));
$rows[$k]['Framingham_RiskOfChdResultFinal'] = $Framingham_RiskOfChdResultFinal;
$rows[$k]['Framingham_RiskOfChdResultFinalPercent'] = round($Framingham_RiskOfChdResultFinal * 100,2);
//STROKE
$Framingham_RiskOfStrokeAge = $age * 0.0505;
$rows[$k]['Framingham_RiskOfStrokeAge'] = $Framingham_RiskOfStrokeAge;
$Framingham_RiskOfStrokeSystolic = $systolic * 0.014;
$rows[$k]['Framingham_RiskOfStrokeSystolic'] = $Framingham_RiskOfStrokeSystolic;
$Framingham_RiskOfStrokeHipertensi = $this->if_condition($hypertension) * 0.3263;
$rows[$k]['Framingham_RiskOfStrokeHipertensi'] = $Framingham_RiskOfStrokeHipertensi;
$Framingham_RiskOfStrokeDiabet = $this->if_condition($diabetes) * 0.3384;
$rows[$k]['Framingham_RiskOfStrokeDiabet'] = $Framingham_RiskOfStrokeDiabet;
$Framingham_RiskOfStrokeSmooking = $this->if_condition($smoking) * 0.5147;
$rows[$k]['Framingham_RiskOfStrokeSmooking'] = $Framingham_RiskOfStrokeSmooking;
$Framingham_RiskOfStrokeVascularDisease = $this->if_condition($history_chd) * 0.5195;
$rows[$k]['Framingham_RiskOfStrokeVascularDisease'] = $Framingham_RiskOfStrokeVascularDisease;
$Framingham_RiskOfStrokeAtrialFIB = $this->if_condition($af) * 0.6061;
$rows[$k]['Framingham_RiskOfStrokeAtrialFIB'] = $Framingham_RiskOfStrokeAtrialFIB;
$Framingham_RiskOfStrokeEcg = $this->if_condition($lvh) * 0.8415;
$rows[$k]['Framingham_RiskOfStrokeEcg'] = $Framingham_RiskOfStrokeEcg;
$faktorlain = -5.677;
$Framingham_RiskOfStrokeResult1 = $Framingham_RiskOfStrokeAge +
$Framingham_RiskOfStrokeSystolic +
$Framingham_RiskOfStrokeHipertensi +
$Framingham_RiskOfStrokeDiabet +
$Framingham_RiskOfStrokeSmooking +
$Framingham_RiskOfStrokeVascularDisease +
$Framingham_RiskOfStrokeAtrialFIB +
$Framingham_RiskOfStrokeEcg +
$faktorlain;
$rows[$k]['Framingham_RiskOfStrokeResult1'] = $Framingham_RiskOfStrokeResult1;
$Framingham_RiskOfStrokeFinal = 1 - pow(0.9044, exp($Framingham_RiskOfStrokeResult1));
$rows[$k]['Framingham_RiskOfStrokeFinal'] = $Framingham_RiskOfStrokeFinal;
$rows[$k]['Framingham_RiskOfStrokeFinalPercent'] = round($Framingham_RiskOfStrokeFinal * 100,2);
$rows[$k]['Framingham_RiskOfChdCardiovascularRisk'] = ($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100);
$rows[$k]['Framingham_RiskOfChdCardiovascularRiskPercent'] = round(($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100),2);
$rows[$k]['Framingham_DataCalculated10RiskofCHD'] = round($Framingham_RiskOfChdResultFinal * 100,2);
$rows[$k]['Framingham_DataCalculated10RiskofStroke'] = round($Framingham_RiskOfStrokeFinal * 100,2);
$rows[$k]['Framingham_DataCalculated10RiskofCardiovascular'] = round(($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100),2);
$query ="SELECT 'SYSTOLIC' test, 'LN(SYSTOLIC)' rumus, '-0,9119' faktorkali, {$Framingham_RiskOfChdSystolic} hasil
UNION SELECT 'SMOOKING' test, 'IF(SMOOKING=Ya,1,0)' rumus, '-0,2767' faktorkali, {$Framingham_RiskOfChdSmooking} hasil
UNION SELECT 'CHOL TOT/HDL' test, 'LN(CHOL.TOT/HDL)' rumus, '-0,7181' faktorkali, {$Framingham_RiskOfChdCholHdl} hasil
UNION SELECT 'ECG' test, 'IF(ECG=Ya,1,0)' rumus, '-0,5865' faktorkali, {$Framingham_RiskOfChdEcg} hasil
UNION SELECT 'USIA' test, 'LN(UMUR)' rumus, '-1,4792' faktorkali, {$Framingham_RiskOfChdAge} hasil
UNION SELECT 'DIABET' test, 'IF(DIABET=Ya,1,0)' rumus, '-0,1759' faktorkali, {$Framingham_RiskOfChdDiabet} hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, {$Framingham_RiskOfChdResult1} hasil
UNION SELECT '' test, '' rumus, 'Hasil 2' faktorkali, {$Framingham_RiskOfChdResult2} hasil
UNION SELECT '' test, '' rumus, 'Hasil 3' faktorkali, {$Framingham_RiskOfChdResult3} hasil
UNION SELECT '' test, '' rumus, 'Hasil 4' faktorkali, {$Framingham_RiskOfChdResult4} hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, format({$Framingham_RiskOfChdResultFinal} * 100,2) hasil
UNION SELECT '' test, '' rumus, 'Cardiovascular Risk' faktorkali, format(($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100),2) hasil";
$chd = $this->db_onedev->query($query)->result_array();
$rows[$k]['chd'] = $chd;
$query ="SELECT 'USIA' test, 'USIA' rumus, '0,0505' faktorkali, $Framingham_RiskOfStrokeAge hasil
UNION SELECT 'SYSTOLIC' test, 'SYSTOLIC' rumus, '0,014' faktorkali, $Framingham_RiskOfStrokeSystolic hasil
UNION SELECT 'HIPERTENSI' test, 'Ya=1, No=0' rumus, '0,3263' faktorkali, $Framingham_RiskOfStrokeHipertensi hasil
UNION SELECT 'DIABET' test, 'Ya=1, No=0' rumus, '0,3384' faktorkali, $Framingham_RiskOfStrokeDiabet hasil
UNION SELECT 'SMOKING' test, 'Ya=1, No=0' rumus, '0,5147' faktorkali, $Framingham_RiskOfStrokeSmooking hasil
UNION SELECT 'VASCULAR DISEASE' test, 'Ya=1, No=0' rumus, '0,5195' faktorkali, $Framingham_RiskOfStrokeVascularDisease hasil
UNION SELECT 'ATRIAL FIB' test, 'Ya=1, No=0' rumus, '0,6061' faktorkali, $Framingham_RiskOfStrokeAtrialFIB hasil
UNION SELECT 'ECG' test, 'Ya=1, No=0' rumus, '0,8415' faktorkali, $Framingham_RiskOfStrokeEcg hasil
UNION SELECT 'Faktor lain' test, '' rumus, '' faktorkali, '-5,677' hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, $Framingham_RiskOfStrokeResult1 hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, format($Framingham_RiskOfStrokeFinal * 100,2) hasil";
$stroke = $this->db_onedev->query($query)->result_array();
$rows[$k]['stroke'] = $stroke;
} else {
// Calculate the risk for female
// CHD
$Framingham_RiskOfChdSystolic = log($systolic) * -0.9119;
$rows[$k]['Framingham_RiskOfChdSystolic'] = $Framingham_RiskOfChdSystolic;
$Framingham_RiskOfChdSmooking = $this->if_condition($smoking) * -0.2767;
$rows[$k]['Framingham_RiskOfChdSmooking'] = $Framingham_RiskOfChdSmooking;
$Framingham_RiskOfChdCholHdl = log($chol / $hdl) * -0.7181;
$rows[$k]['Framingham_RiskOfChdCholHdl'] = $Framingham_RiskOfChdCholHdl;
$Framingham_RiskOfChdEcg = $this->if_condition($lvh) * -0.5865;
$rows[$k]['Framingham_RiskOfChdEcg'] = $Framingham_RiskOfChdEcg;
$Framingham_RiskOfChdAge = pow(log($age / 74), 2) * 1.8515;
$rows[$k]['Framingham_RiskOfChdAge'] = $Framingham_RiskOfChdAge;
$Framingham_RiskOfChdDiabet = $this->if_condition($diabetes) * - 0.3758;
$rows[$k]['Framingham_RiskOfChdDiabet'] = $Framingham_RiskOfChdDiabet;
$faktorlain = -5.8549;
$Framingham_RiskOfChdResult1 = $Framingham_RiskOfChdSystolic + $Framingham_RiskOfChdSmooking + $Framingham_RiskOfChdCholHdl + $Framingham_RiskOfChdEcg + $Framingham_RiskOfChdAge + $Framingham_RiskOfChdDiabet + $faktorlain;
$rows[$k]['Framingham_RiskOfChdResult1'] = $Framingham_RiskOfChdResult1;
$Framingham_RiskOfChdResult2 = 11.1122 + $Framingham_RiskOfChdResult1;
$rows[$k]['Framingham_RiskOfChdResult2'] = $Framingham_RiskOfChdResult2;
$Framingham_RiskOfChdResult3 = log(10)-(4.4181 + $Framingham_RiskOfChdResult2);
$rows[$k]['Framingham_RiskOfChdResult3'] = $Framingham_RiskOfChdResult3;
$Framingham_RiskOfChdResult4 = exp(-0.3155-(0.2784 * $Framingham_RiskOfChdResult2));
$rows[$k]['Framingham_RiskOfChdResult4'] = $Framingham_RiskOfChdResult4;
$Framingham_RiskOfChdResultFinal = 1-(EXP(-EXP($Framingham_RiskOfChdResult3/$Framingham_RiskOfChdResult4)));
$rows[$k]['Framingham_RiskOfChdResultFinal'] = $Framingham_RiskOfChdResultFinal;
$rows[$k]['Framingham_RiskOfChdResultFinalPercent'] = round($Framingham_RiskOfChdResultFinal * 100,2);
//STROKE
$Framingham_RiskOfStrokeAge = $age * 0.0657;
$rows[$k]['Framingham_RiskOfStrokeAge'] = $Framingham_RiskOfStrokeAge;
$Framingham_RiskOfStrokeSystolic = $systolic * 0.0197;
$rows[$k]['Framingham_RiskOfStrokeSystolic'] = $Framingham_RiskOfStrokeSystolic;
$Framingham_RiskOfStrokeHipertensi = $this->if_condition($hypertension) * 2.5432;
$rows[$k]['Framingham_RiskOfStrokeHipertensi'] = $Framingham_RiskOfStrokeHipertensi;
$Framingham_RiskOfStrokeDiabet = $this->if_condition($diabetes) * 0.5442;
$rows[$k]['Framingham_RiskOfStrokeDiabet'] = $Framingham_RiskOfStrokeDiabet;
$Framingham_RiskOfStrokeSmooking = $this->if_condition($smoking) * 0.5294;
$rows[$k]['Framingham_RiskOfStrokeSmooking'] = $Framingham_RiskOfStrokeSmooking;
$Framingham_RiskOfStrokeVascularDisease = $this->if_condition($history_chd) * 0.4326;
$rows[$k]['Framingham_RiskOfStrokeVascularDisease'] = $Framingham_RiskOfStrokeVascularDisease;
$Framingham_RiskOfStrokeAtrialFIB = $this->if_condition($af) * 1.1497;
$rows[$k]['Framingham_RiskOfStrokeAtrialFIB'] = $Framingham_RiskOfStrokeAtrialFIB;
$Framingham_RiskOfStrokeEcg = $this->if_condition($lvh) * 0.8488;
$rows[$k]['Framingham_RiskOfStrokeEcg'] = $Framingham_RiskOfStrokeEcg;
$Framingham_RiskOfStrokeHipertensi2 = $this->if_condition($hypertension) * -0.0134 * $systolic;
$rows[$k]['Framingham_RiskOfStrokeHipertensi2'] = $Framingham_RiskOfStrokeHipertensi2;
$faktorlain = -7.5766;
$Framingham_RiskOfStrokeResult1 = $Framingham_RiskOfStrokeAge +
$Framingham_RiskOfStrokeSystolic +
$Framingham_RiskOfStrokeHipertensi +
$Framingham_RiskOfStrokeDiabet +
$Framingham_RiskOfStrokeSmooking +
$Framingham_RiskOfStrokeVascularDisease +
$Framingham_RiskOfStrokeAtrialFIB +
$Framingham_RiskOfStrokeEcg +
$Framingham_RiskOfStrokeHipertensi2 +
$faktorlain;
$rows[$k]['Framingham_RiskOfStrokeResult1'] = $Framingham_RiskOfStrokeResult1;
$Framingham_RiskOfStrokeFinal = 1 - pow(0.9353, exp($Framingham_RiskOfStrokeResult1));
$rows[$k]['Framingham_RiskOfStrokeFinal'] = $Framingham_RiskOfStrokeFinal;
$rows[$k]['Framingham_RiskOfStrokeFinalPercent'] = round($Framingham_RiskOfStrokeFinal * 100,2);
$rows[$k]['Framingham_RiskOfChdCardiovascularRisk'] = ($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100);
$rows[$k]['Framingham_RiskOfChdCardiovascularRiskPercent'] = round(($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100),2);
$rows[$k]['Framingham_DataCalculated10RiskofCHD'] = round($Framingham_RiskOfChdResultFinal * 100,2);
$rows[$k]['Framingham_DataCalculated10RiskofStroke'] = round($Framingham_RiskOfStrokeFinal * 100,2);
$rows[$k]['Framingham_DataCalculated10RiskofCardiovascular'] = round(($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100),2);
$query ="SELECT 'SYSTOLIC' test, 'LN(SYSTOLIC)' rumus, '-0,9119' faktorkali, $Framingham_RiskOfChdSystolic hasil
UNION SELECT 'SMOOKING' test, 'IF(SMOOKING=Ya,1,0)' rumus, '-0,2767' faktorkali, $Framingham_RiskOfChdSmooking hasil
UNION SELECT 'CHOL TOT/HDL' test, 'LN(CHOL.TOT/HDL)' rumus, '-0,7181' faktorkali, $Framingham_RiskOfChdCholHdl hasil
UNION SELECT 'ECG' test, 'IF(ECG=Ya,1,0)' rumus, '-0,5865' faktorkali, $Framingham_RiskOfChdEcg hasil
UNION SELECT 'USIA' test, 'LN(UMUR/74)^2' rumus, '1,8515' faktorkali, $Framingham_RiskOfChdAge hasil
UNION SELECT 'Faktor Lain' test, '' rumus, '' faktorkali, '-5,8549' hasil
UNION SELECT 'DIABET' test, 'IF(DIABET=Ya,1,0)' rumus, '0,3758' faktorkali, $Framingham_RiskOfChdDiabet hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, {$Framingham_RiskOfChdResult1} hasil
UNION SELECT '' test, '' rumus, 'Hasil 2' faktorkali, {$Framingham_RiskOfChdResult2} hasil
UNION SELECT '' test, '' rumus, 'Hasil 3' faktorkali, {$Framingham_RiskOfChdResult3} hasil
UNION SELECT '' test, '' rumus, 'Hasil 4' faktorkali, {$Framingham_RiskOfChdResult4} hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, format({$Framingham_RiskOfChdResultFinal} * 100,2) hasil
UNION SELECT '' test, '' rumus, 'Cardiovascular Risk' faktorkali, format(($Framingham_RiskOfChdResultFinal * 100) + ($Framingham_RiskOfStrokeFinal * 100),2) hasil";
$chd = $this->db_onedev->query($query)->result_array();
$rows[$k]['chd'] = $chd;
$query ="SELECT 'USIA' test, 'USIA' rumus, '0,0505' faktorkali, $Framingham_RiskOfStrokeAge hasil
UNION SELECT 'SYSTOLIC' test, 'SYSTOLIC' rumus, '0,0197' faktorkali, $Framingham_RiskOfStrokeSystolic hasil
UNION SELECT 'HIPERTENSI' test, 'Ya=1, No=0' rumus, '2,5432' faktorkali, $Framingham_RiskOfStrokeHipertensi hasil
UNION SELECT 'DIABET' test, 'Ya=1, No=0' rumus, '0,5442' faktorkali, $Framingham_RiskOfStrokeDiabet hasil
UNION SELECT 'SMOKING' test, 'Ya=1, No=0' rumus, '0,5294' faktorkali, $Framingham_RiskOfStrokeSmooking hasil
UNION SELECT 'VASCULAR DISEASE' test, 'Ya=1, No=0' rumus, '0,4326' faktorkali, $Framingham_RiskOfStrokeVascularDisease hasil
UNION SELECT 'ATRIAL FIB' test, 'Ya=1, No=0' rumus, '1,1497' faktorkali, $Framingham_RiskOfStrokeAtrialFIB hasil
UNION SELECT 'ECG' test, 'Ya=1, No=0' rumus, '0,8488' faktorkali, $Framingham_RiskOfStrokeEcg hasil
UNION SELECT 'HIPERTENSI' test, 'Ya=1, No=0' rumus, '-0,0134' faktorkali, $Framingham_RiskOfStrokeHipertensi2 hasil
UNION SELECT 'Faktor lain' test, '' rumus, '' faktorkali, '-7,5766' hasil
UNION SELECT '' test, '' rumus, 'Hasil 1' faktorkali, $Framingham_RiskOfStrokeResult1 hasil
UNION SELECT '' test, '' rumus, 'Hasil Akhir' faktorkali, format($Framingham_RiskOfStrokeFinal * 100,2) hasil";
$stroke = $this->db_onedev->query($query)->result_array();
$rows[$k]['stroke'] = $stroke;
}
}
}
}
$result = array(
"total" => count($rows) ,
"records" => $rows,
);
$this->sys_ok($result);
exit;
}
function if_condition($condition) {
return $condition === "Y" ? 1 : 0;
}
function checkSmokingStatus($data) {
foreach ($data as $section) {
if ($section['title'] === 'RIWAYAT KEBIASAAN HIDUP') {
foreach ($section['details'] as $habit) {
if ($habit['name'] === 'Merokok') {
foreach ($habit['details'] as $smokeDetail) {
if ($smokeDetail['segment_name'] === 'Merokok' && $smokeDetail['label'] !== 'Tidak merokok' && $smokeDetail['chx'] === true) {
return "Y";
}
}
return "N";
}
}
}
}
return "N";
}
function checkPeripheralVascular($data) {
foreach ($data as $section) {
if ($section['title'] === 'RIWAYAT PENYAKIT') {
foreach ($section['details'] as $habit) {
if ($habit['name'] === 'Merokok') {
foreach ($habit['details'] as $vascularDetail) {
if ($vascularDetail['segment_name'] === 'System cardiovaskuler' && $vascularDetail['label'] !== 'Anemia' && $vascularDetail['chx'] === true) {
return "Y";
}
}
return "N";
}
}
}
}
return "N";
}
function saveframingham(){
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$userid = $this->sys_user["M_UserID"];
$sql = "INSERT INTO framingham_data (
Framingham_DataT_OrderHeaderID,
Framingham_DataSistolic,
Framingham_DataDiastolic,
Framingham_DataChol,
Framingham_DataHDL,
Framingham_DataInAtrialFibrillation,
Framingham_DataOnAntiHypertensiveRx,
Framingham_DataHistoryofSmoking,
Framingham_DataHistoryofDiabetes,
Framingham_DataHistoryofPeripheralVascular,
Framingham_DataECGLVH,
Framingham_DataCalculated10RiskofCHD,
Framingham_DataCalculated10RiskofStroke,
Framingham_DataCalculated10RiskofCardiovascular,
Framingham_DataUserID)
VALUE('{$prm['details']['Framingham_DataT_OrderHeaderID']}',
'{$prm['details']['Framingham_DataSistolic']}',
'{$prm['details']['Framingham_DataDiastolic']}',
'{$prm['details']['Framingham_DataChol']}',
'{$prm['details']['Framingham_DataHDL']}',
'{$prm['details']['Framingham_DataInAtrialFibrillation']}',
'{$prm['details']['Framingham_DataOnAntiHypertensiveRx']}',
'{$prm['details']['Framingham_DataHistoryofSmoking']}',
'{$prm['details']['Framingham_DataHistoryofDiabetes']}',
'{$prm['details']['Framingham_DataHistoryofPeripheralVascular']}',
'{$prm['details']['Framingham_DataECGLVH']}',
'{$prm['details']['Framingham_DataCalculated10RiskofCHD']}',
'{$prm['details']['Framingham_DataCalculated10RiskofStroke']}',
'{$prm['details']['Framingham_DataCalculated10RiskofCardiovascular']}',
$userid)";
$query = $this->db_onedev->query($sql);
// echo $query;
if (!$query) {
$this->sys_error_db("framingham_data insert");
exit;
}
$last_id = $this->db_onedev->insert_id();
$sql = "INSERT INTO framingham_riskofchd (
Framingham_RiskOfChdFramingham_DataID,
Framingham_RiskOfChdSystolic,
Framingham_RiskOfChdSmooking,
Framingham_RiskOfChdCholHdl,
Framingham_RiskOfChdEcg,
Framingham_RiskOfChdAge,
Framingham_RiskOfChdDiabet,
Framingham_RiskOfChdResult1,
Framingham_RiskOfChdResult2,
Framingham_RiskOfChdResult3,
Framingham_RiskOfChdResult4,
Framingham_RiskOfChdResultFinal,
Framingham_RiskOfChdResultFinalPercent,
Framingham_RiskOfChdCardiovascularRisk,
Framingham_RiskOfChdCardiovascularRiskPercent,
Framingham_RiskOfChdUserID)
VALUE($last_id,
'{$prm['details']['Framingham_RiskOfChdSystolic']}',
'{$prm['details']['Framingham_RiskOfChdSmooking']}',
'{$prm['details']['Framingham_RiskOfChdCholHdl']}',
'{$prm['details']['Framingham_RiskOfChdEcg']}',
'{$prm['details']['Framingham_RiskOfChdAge']}',
'{$prm['details']['Framingham_RiskOfChdDiabet']}',
'{$prm['details']['Framingham_RiskOfChdResult1']}',
'{$prm['details']['Framingham_RiskOfChdResult2']}',
'{$prm['details']['Framingham_RiskOfChdResult3']}',
'{$prm['details']['Framingham_RiskOfChdResult4']}',
'{$prm['details']['Framingham_RiskOfChdResultFinal']}',
'{$prm['details']['Framingham_RiskOfChdResultFinalPercent']}',
'{$prm['details']['Framingham_RiskOfChdCardiovascularRisk']}',
'{$prm['details']['Framingham_RiskOfChdCardiovascularRiskPercent']}',
$userid)";
$query = $this->db_onedev->query($sql);
// echo $query;
if (!$query) {
$this->sys_error_db("framingham_riskofchd insert");
exit;
}
$sql = "INSERT INTO framingham_riskofstroke (
Framingham_RiskOfStrokeFramingham_DataID,
Framingham_RiskOfStrokeAge,
Framingham_RiskOfStrokeSystolic,
Framingham_RiskOfStrokeHipertensi,
Framingham_RiskOfStrokeDiabet,
Framingham_RiskOfStrokeSmooking,
Framingham_RiskOfStrokeVascularDisease,
Framingham_RiskOfStrokeAtrialFIB,
Framingham_RiskOfStrokeEcg,
Framingham_RiskOfStrokeHipertensi2,
Framingham_RiskOfStrokeResult1,
Framingham_RiskOfStrokeFinal,
Framingham_RiskOfStrokeFinalPercent,
Framingham_RiskOfStrokeUserID)
VALUE($last_id,
'{$prm['details']['Framingham_RiskOfStrokeAge']}',
'{$prm['details']['Framingham_RiskOfStrokeSystolic']}',
'{$prm['details']['Framingham_RiskOfStrokeHipertensi']}',
'{$prm['details']['Framingham_RiskOfStrokeDiabet']}',
'{$prm['details']['Framingham_RiskOfStrokeSmooking']}',
'{$prm['details']['Framingham_RiskOfStrokeVascularDisease']}',
'{$prm['details']['Framingham_RiskOfStrokeAtrialFIB']}',
'{$prm['details']['Framingham_RiskOfStrokeEcg']}',
'{$prm['details']['Framingham_RiskOfStrokeHipertensi2']}',
'{$prm['details']['Framingham_RiskOfStrokeResult1']}',
'{$prm['details']['Framingham_RiskOfStrokeFinal']}',
'{$prm['details']['Framingham_RiskOfStrokeFinalPercent']}',
$userid)";
$query = $this->db_onedev->query($sql);
// echo $query;
if (!$query) {
$this->sys_error_db("framingham_riskofstroke insert");
exit;
}
$result = array ("total" => 1, "records" => array("id" => $prm['Framingham_DataT_OrderHeaderID']));
$this->sys_ok($result);
}
function resetframingham(){
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$userid = $this->sys_user["M_UserID"];
$sql = "UPDATE framingham_data SET Framingham_DataIsActive = 'N' WHERE Framingham_DataID = {$prm['Framingham_DataID']}";
$query = $this->db_onedev->query($sql);
// echo $query;
if (!$query) {
$this->sys_error_db("framingham_data delete");
exit;
}
$sql = "UPDATE framingham_riskofchd SET Framingham_RiskOfChdIsActive = 'N' WHERE Framingham_RiskOfChdFramingham_DataID = {$prm['Framingham_DataID']}";
$query = $this->db_onedev->query($sql);
// echo $query;
if (!$query) {
$this->sys_error_db("framingham_riskofchd delete");
exit;
}
$sql = "UPDATE framingham_riskofstroke SET Framingham_RiskOfStrokeIsActive = 'N' WHERE Framingham_RiskOfStrokeFramingham_DataID = {$prm['Framingham_DataID']}";
$query = $this->db_onedev->query($sql);
// echo $query;
if (!$query) {
$this->sys_error_db("framingham_riskofstroke delete");
exit;
}
$result = array ("total" => 1, "records" => array("id" => $prm['Framingham_DataT_OrderHeaderID']));
$this->sys_ok($result);
}
}