1025 lines
47 KiB
PHP
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);
|
|
}
|
|
|
|
}
|
|
|