596 lines
24 KiB
PHP
596 lines
24 KiB
PHP
<?php
|
||
|
||
class Updatequery_hanan extends MY_Controller
|
||
{
|
||
|
||
function donow()
|
||
{
|
||
$array_db = array(
|
||
'riau',
|
||
'pajajaran',
|
||
'toha',
|
||
'cimahi',
|
||
'ngagel',
|
||
'aditya',
|
||
'jemur',
|
||
'mulyo',
|
||
'parkus',
|
||
'hrm',
|
||
'cikditiro',
|
||
'sultan_agung',
|
||
'matraman',
|
||
'bonjer',
|
||
'samanhudi',
|
||
'ragunan',
|
||
'cirebon',
|
||
'veteran',
|
||
'dahlan',
|
||
'plaju',
|
||
'diponegoro',
|
||
'yamin',
|
||
'padang',
|
||
'tegal',
|
||
'manado',
|
||
'pontianak',
|
||
'sudirman',
|
||
'magelang',
|
||
'salatiga',
|
||
'semarang',
|
||
'balikpapan',
|
||
'madiun',
|
||
'makasar',
|
||
'denpasar',
|
||
'tasik',
|
||
'dupang',
|
||
'wonokusumo',
|
||
'tangkuban_perahu',
|
||
'ciliwung',
|
||
'kediri',
|
||
'jember',
|
||
'simokerto',
|
||
'hertasning',
|
||
'tulungagung',
|
||
'hasyim',
|
||
'sumarecon',
|
||
'kompolmaksum',
|
||
'mojokerto'
|
||
);
|
||
|
||
//KALO TRIGGER DELIMITERNYA DIHAPUS
|
||
foreach ($array_db as $k => $v) {
|
||
$this->dbx = $this->load->database($v, true);
|
||
|
||
$sql = "DROP FUNCTION IF EXISTS `fn_get_executive_umur`";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "CREATE FUNCTION `fn_get_executive_umur`(`PMcuID` int, `PID` int) RETURNS varchar(100) CHARSET utf8mb4
|
||
READS SQL DATA
|
||
BEGIN
|
||
DECLARE RTN VARCHAR(100);
|
||
|
||
select
|
||
umur into RTN
|
||
from
|
||
(
|
||
|
||
select
|
||
row_num,
|
||
ROW_NUMBER() OVER(order BY name desc) AS row_num1 ,
|
||
Mcu_Top3KelainanID,
|
||
hasil,
|
||
name,
|
||
umur
|
||
|
||
from
|
||
(
|
||
select
|
||
ROW_NUMBER() OVER(partition BY Mcu_Top3KelainanID) AS row_num ,
|
||
Mcu_Top3KelainanID ,
|
||
hasil ,
|
||
name as name,
|
||
umur,
|
||
persentase,
|
||
Mcu_Top3KelainanDescription
|
||
from
|
||
(
|
||
|
||
SELECT
|
||
Mcu_Top3KelainanID,
|
||
count(distinct Mgm_HeaderT_OrderHeaderID) as hasil ,
|
||
Mcu_Top3KelainanMcu_KelainangroupName as name,
|
||
case
|
||
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"< 30 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"30 -< 40 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"40 - < 50 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"> 50 th\" else \"\"
|
||
end as umur,
|
||
concat(\"(\",round((count(distinct Mgm_HeaderT_OrderHeaderID) / @peserta * 100),2),\"%)\" )as persentase,
|
||
Mcu_Top3KelainanDescription
|
||
|
||
from one_etl.mgm_header
|
||
join one_etl.mgm_detail
|
||
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
|
||
AND Mgm_DetailIsActive = 'Y'
|
||
AND Mgm_HeaderIsActive = 'Y' and Mgm_HeaderMgm_McuID = PMcuID
|
||
join one_etl.mcu_top3_kelainan on Mgm_DetailMcu_KelainanGroupID = Mcu_Top3KelainanMcu_KelainanGroupID
|
||
and Mgm_HeaderMgm_McuID = Mcu_Top3KelainanMgm_McuID
|
||
and Mcu_Top3KelainanIsActive = 'Y'
|
||
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
|
||
|
||
group by Mcu_Top3KelainanMcu_KelainangroupName ,umur
|
||
|
||
|
||
union
|
||
|
||
|
||
SELECT
|
||
Mcu_Top3KelainanID,
|
||
count(distinct Mgm_HeaderT_OrderHeaderID) as hasil ,
|
||
Mcu_Top3KelainanMcu_KelainangroupName as name,
|
||
case
|
||
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"< 30 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"30 -< 40 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"40 - < 50 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"> 50 th\" else \"\"
|
||
end as umur,
|
||
concat(\"(\",round((count(distinct Mgm_HeaderT_OrderHeaderID) / @peserta * 100),2),\"%)\" )as persentase,
|
||
Mcu_Top3KelainanDescription
|
||
|
||
from one_etl.mgm_header
|
||
join one_etl.mgm_detail
|
||
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
|
||
AND Mgm_DetailIsActive = 'Y'
|
||
AND Mgm_HeaderIsActive = 'Y' and Mgm_HeaderMgm_McuID = PMcuID
|
||
join one_etl.mcu_top3_kelainan on Mgm_DetailMcu_KelainanID = Mcu_Top3KelainanMcuKelainanID
|
||
and Mgm_HeaderMgm_McuID = Mcu_Top3KelainanMgm_McuID
|
||
and Mcu_Top3KelainanIsActive = 'Y'
|
||
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
|
||
|
||
group by Mcu_Top3KelainanMcu_KelainangroupName ,umur
|
||
|
||
order by Mcu_Top3KelainanID,hasil desc ) as xxx ) as xxxx
|
||
where row_num = 1 ) as umur where Mcu_Top3KelainanID = PID
|
||
limit 1
|
||
;
|
||
return RTN;
|
||
|
||
END";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "DROP FUNCTION IF EXISTS `fn_get_executive_umur_hasil`";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "CREATE FUNCTION `fn_get_executive_umur_hasil`(`PMcuID` int, `PID` int) RETURNS varchar(100) CHARSET utf8mb4
|
||
READS SQL DATA
|
||
BEGIN
|
||
DECLARE RTN VARCHAR(100);
|
||
|
||
select count(Mcu_OrderT_OrderHeaderID) into @peserta
|
||
from one_etl.mgm_mcu
|
||
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mgm_McuID
|
||
where Mgm_McuIsActive = 'Y'
|
||
and Mcu_OrderMgm_McuID = PMcuID;
|
||
|
||
select
|
||
persentase into RTN
|
||
from
|
||
(
|
||
|
||
select
|
||
row_num,
|
||
ROW_NUMBER() OVER(order BY name desc) AS row_num1 ,
|
||
Mcu_Top3KelainanID,
|
||
hasil,
|
||
name,
|
||
umur ,
|
||
concat(persentase,\" \" , hasil) as persentase
|
||
|
||
from
|
||
(
|
||
select
|
||
ROW_NUMBER() OVER(partition BY Mcu_Top3KelainanID) AS row_num ,
|
||
Mcu_Top3KelainanID ,
|
||
hasil ,
|
||
name as name,
|
||
umur,
|
||
persentase,
|
||
Mcu_Top3KelainanDescription
|
||
from
|
||
(
|
||
|
||
SELECT
|
||
Mcu_Top3KelainanID,
|
||
count(distinct Mgm_HeaderT_OrderHeaderID) as hasil ,
|
||
Mcu_Top3KelainanMcu_KelainangroupName as name,
|
||
case
|
||
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"< 30 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"30 -< 40 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"40 - < 50 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"> 50 th\" else \"\"
|
||
end as umur,
|
||
concat(\"(\",round((count(distinct Mgm_HeaderT_OrderHeaderID) / @peserta * 100),2),\"%)\" )as persentase,
|
||
Mcu_Top3KelainanDescription
|
||
|
||
from one_etl.mgm_header
|
||
join one_etl.mgm_detail
|
||
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
|
||
AND Mgm_DetailIsActive = 'Y'
|
||
AND Mgm_HeaderIsActive = 'Y' and Mgm_HeaderMgm_McuID = PMcuID
|
||
join one_etl.mcu_top3_kelainan on Mgm_DetailMcu_KelainanGroupID = Mcu_Top3KelainanMcu_KelainanGroupID
|
||
and Mgm_HeaderMgm_McuID = Mcu_Top3KelainanMgm_McuID
|
||
and Mcu_Top3KelainanIsActive = 'Y'
|
||
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
|
||
|
||
group by Mcu_Top3KelainanMcu_KelainangroupName ,umur
|
||
|
||
union
|
||
|
||
SELECT
|
||
Mcu_Top3KelainanID,
|
||
count(distinct Mgm_HeaderT_OrderHeaderID) as hasil ,
|
||
Mcu_Top3KelainanMcu_KelainangroupName as name,
|
||
case
|
||
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"< 30 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"30 -< 40 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"40 - < 50 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"> 50 th\" else \"\"
|
||
end as umur,
|
||
concat(\"(\",round((count(distinct Mgm_HeaderT_OrderHeaderID) / @peserta * 100),2),\"%)\" )as persentase,
|
||
Mcu_Top3KelainanDescription
|
||
|
||
from one_etl.mgm_header
|
||
join one_etl.mgm_detail
|
||
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
|
||
AND Mgm_DetailIsActive = 'Y'
|
||
AND Mgm_HeaderIsActive = 'Y' and Mgm_HeaderMgm_McuID = PMcuID
|
||
join one_etl.mcu_top3_kelainan on Mgm_DetailMcu_KelainanID = Mcu_Top3KelainanMcuKelainanID
|
||
and Mgm_HeaderMgm_McuID = Mcu_Top3KelainanMgm_McuID
|
||
and Mcu_Top3KelainanIsActive = 'Y'
|
||
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
|
||
|
||
group by Mcu_Top3KelainanMcu_KelainangroupName ,umur
|
||
|
||
order by Mcu_Top3KelainanID,hasil desc ) as xxx ) as xxxx
|
||
where row_num = 1 ) as umur where Mcu_Top3KelainanID = PID
|
||
limit 1
|
||
;
|
||
return RTN;
|
||
|
||
END";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "DROP PROCEDURE IF EXISTS `sp_rpt_executive_summary_tiga_text`";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "CREATE PROCEDURE `sp_rpt_executive_summary_tiga_text`(IN `PID` int, IN `username` varchar(100))
|
||
begin
|
||
select count(Mcu_OrderT_OrderHeaderID) into @peserta
|
||
from one_etl.mgm_mcu
|
||
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mgm_McuID
|
||
|
||
|
||
where Mgm_McuIsActive = 'Y'
|
||
and Mcu_OrderMgm_McuID = PID ;
|
||
|
||
|
||
select
|
||
row_num,
|
||
ROW_NUMBER() OVER(order BY Mcu_Top3KelainanID ASC) AS row_num1 ,
|
||
Mcu_Top3KelainanID,
|
||
hasil,
|
||
name,
|
||
sex,
|
||
persentase,
|
||
umur,
|
||
umurHasil,
|
||
REPLACE( REPLACE( REPLACE( REPLACE(Mcu_Top3KelainanDescription, \" * Kelamin * \" , sex ), \" * HasilKelamin * \" , persentase) , \" * Umur * \" , umur), \" * HasilUmur * \" , umurHasil)as Mcu_Top3KelainanDescription
|
||
from
|
||
(
|
||
|
||
select
|
||
|
||
ROW_NUMBER() OVER(partition BY Mcu_Top3KelainanID) AS row_num ,
|
||
Mcu_Top3KelainanID ,
|
||
hasil ,
|
||
name as name,
|
||
sex,
|
||
concat(persentase , \" \" , hasil) as persentase,
|
||
`fn_get_executive_umur`(Mcu_Top3KelainanMgm_McuID ,Mcu_Top3KelainanID) as umur,
|
||
`fn_get_executive_umur_hasil`(Mcu_Top3KelainanMgm_McuID ,Mcu_Top3KelainanID) as umurHasil,
|
||
Mcu_Top3KelainanDescription
|
||
|
||
from
|
||
(
|
||
|
||
|
||
WITH combined_results AS (
|
||
SELECT Mcu_Top3KelainanMgm_McuID,
|
||
Mcu_Top3KelainanID,
|
||
COUNT(DISTINCT Mgm_HeaderT_OrderHeaderID) AS hasil,
|
||
Mcu_Top3KelainanMcu_KelainangroupName AS name,
|
||
IF(Mgm_HeaderM_SexCode = 'L', 'Laki-Laki', 'Perempuan') AS sex,
|
||
CONCAT('(', ROUND((COUNT(DISTINCT Mgm_HeaderT_OrderHeaderID) / @peserta * 100), 2), '%)') AS persentase,
|
||
Mcu_Top3KelainanDescription
|
||
FROM one_etl.mgm_header
|
||
JOIN one_etl.mgm_detail
|
||
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
|
||
AND Mgm_DetailIsActive = 'Y'
|
||
AND Mgm_HeaderIsActive = 'Y'
|
||
AND Mgm_HeaderMgm_McuID = PID
|
||
JOIN one_etl.mcu_top3_kelainan
|
||
ON Mgm_DetailMcu_KelainanGroupID = Mcu_Top3KelainanMcu_KelainanGroupID
|
||
AND Mgm_HeaderMgm_McuID = Mcu_Top3KelainanMgm_McuID
|
||
AND Mcu_Top3KelainanIsActive = 'Y'
|
||
JOIN t_orderheader
|
||
ON Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID
|
||
AND T_OrderHeaderIsActive = 'Y'
|
||
GROUP BY Mcu_Top3KelainanMcu_KelainangroupName, sex
|
||
|
||
UNION
|
||
|
||
SELECT Mcu_Top3KelainanMgm_McuID,
|
||
Mcu_Top3KelainanID,
|
||
COUNT(DISTINCT Mgm_HeaderT_OrderHeaderID) AS hasil,
|
||
Mcu_Top3KelainanMcu_KelainangroupName AS name,
|
||
IF(Mgm_HeaderM_SexCode = 'L', 'Laki-Laki', 'Perempuan') AS sex,
|
||
CONCAT('(', ROUND((COUNT(DISTINCT Mgm_HeaderT_OrderHeaderID) / @peserta * 100), 2), '%)') AS persentase,
|
||
Mcu_Top3KelainanDescription
|
||
FROM one_etl.mgm_header
|
||
JOIN one_etl.mgm_detail
|
||
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
|
||
AND Mgm_DetailIsActive = 'Y'
|
||
AND Mgm_HeaderIsActive = 'Y'
|
||
AND Mgm_HeaderMgm_McuID = PID
|
||
JOIN one_etl.mcu_top3_kelainan
|
||
ON Mgm_DetailMcu_KelainanID = Mcu_Top3KelainanMcuKelainanID
|
||
AND Mgm_HeaderMgm_McuID = Mcu_Top3KelainanMgm_McuID
|
||
AND Mcu_Top3KelainanIsActive = 'Y'
|
||
JOIN t_orderheader
|
||
ON Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID
|
||
AND T_OrderHeaderIsActive = 'Y'
|
||
GROUP BY Mcu_Top3KelainanMcu_KelainangroupName, sex
|
||
)
|
||
|
||
SELECT *
|
||
FROM (
|
||
SELECT *,
|
||
ROW_NUMBER() OVER (PARTITION BY name ORDER BY hasil DESC) AS rn
|
||
FROM combined_results
|
||
) ranked
|
||
WHERE rn = 1
|
||
ORDER BY Mcu_Top3KelainanID, hasil DESC) as a ) as b
|
||
|
||
;
|
||
END";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
|
||
$sql = "DROP PROCEDURE IF EXISTS `sp_rpt_exe_pola_kelainan`";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "CREATE PROCEDURE `sp_rpt_exe_pola_kelainan`(IN `PID` int, IN `username` varchar(100))
|
||
begin
|
||
|
||
SELECT
|
||
CASE
|
||
WHEN COUNT(*) > 1 THEN
|
||
CONCAT(
|
||
GROUP_CONCAT(Mcu_Top3KelainanMcu_KelainangroupName SEPARATOR ', '),
|
||
' dan ',
|
||
(SELECT Mcu_Top3KelainanMcu_KelainangroupName FROM one_etl.mcu_top3_kelainan where Mcu_Top3KelainanMgm_McuID = PID and Mcu_Top3KelainanIsActive = 'Y' ORDER BY Mcu_Top3KelainanID DESC LIMIT 1 )
|
||
)
|
||
ELSE
|
||
MAX(Mcu_Top3KelainanMcu_KelainangroupName )
|
||
END into @namakelainan
|
||
FROM (
|
||
select Mcu_Top3KelainanMcu_KelainangroupName
|
||
from one_etl.mcu_top3_kelainan
|
||
where Mcu_Top3KelainanMgm_McuID = PID
|
||
and Mcu_Top3KelainanIsActive = 'Y' limit 2
|
||
) as namakelainan
|
||
;
|
||
|
||
set lc_time_names = \"id_ID\";
|
||
|
||
select
|
||
concat(
|
||
\" Berdasarkan hasil pemeriksaan kesehatan berkala yang dilakukan terhadap \",count(Mcu_OrderT_OrderHeaderID) ,\" orang peserta \",M_CompanyName ,\" yang dilaksanakan pada tanggal \" ,date_format(Mgm_McuStartDate, '%d %M %Y') ,\" sampai dengan \" ,date_format(Mgm_McuEndDate , '%d %M %Y') ,\", bertempat di masing-masing lokasi dan di Laboratorium Klinik PRAMITA, didapatkan bahwa sebagian besar hasil pemeriksaannya adalah masih dalam batas normal. Kelainan – kelainan yang di temukan dari hasil pemeriksaan MCU sebagian besar terdiri dari kelainan \" ,@namakelainan , \". Secara keseluruhan 10 temuan kelainan tertinggi tampak pada table dan grafik :\"
|
||
) as PolaKelainan
|
||
|
||
|
||
|
||
|
||
from one_etl.mgm_mcu
|
||
join m_company on Mgm_McuM_CompanyID = M_CompanyID
|
||
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mgm_McuID
|
||
|
||
where Mgm_McuID = PID ;
|
||
end";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "DROP PROCEDURE IF EXISTS `sp_rpt_exe_sum_001`";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
|
||
$sql = "CREATE PROCEDURE `sp_rpt_exe_sum_001`(IN `PID` int, IN `username` varchar(100))
|
||
begin
|
||
|
||
set lc_time_names = \"id_ID\";
|
||
|
||
select
|
||
group_concat(distinct Test order by TestID, T_TestSasCode SEPARATOR ', ') into @Test
|
||
from
|
||
(
|
||
select
|
||
Mgm_McuID,
|
||
T_TestSasCode,T_TestName ,
|
||
case
|
||
when T_TestNat_GroupID = 1 then \"Laboratorium\"
|
||
when T_TestNat_GroupID = 4 then \"Pemeriksaan Fisik\"
|
||
when T_TestNat_GroupID = 3 then \"Foto Polos\"
|
||
else group_concat(distinct T_TestName) end as Test ,
|
||
case
|
||
when T_TestNat_GroupID = 1 then \"2\"
|
||
when T_TestNat_GroupID = 4 then \"1\"
|
||
when T_TestNat_GroupID = 2 then \"4\"
|
||
when T_TestNat_GroupID = 3 then \"3\"
|
||
else '1' end as TestID
|
||
|
||
from one_etl.mgm_mcu
|
||
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mgm_McuID
|
||
join t_orderdetail on Mcu_OrderT_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive = 'Y'
|
||
join t_test on T_OrderDetailT_TestID = T_TestID
|
||
join nat_test ON T_TestNat_TestID = Nat_TestID
|
||
where Mgm_McuID = 23 and T_TestIsPrice = 'Y' and Nat_TestPriceSumToNat_TestID = ''
|
||
group by T_TestID ) as test ;
|
||
|
||
|
||
|
||
select umur into @umur
|
||
|
||
from
|
||
(
|
||
|
||
select
|
||
case
|
||
when left(T_OrderHeaderM_PatientAge,2) < '30' then \" < 30 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \" 30 -< 40 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \" 40 - < 50 th\"
|
||
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \" > 50 th\" else \"\"
|
||
end as umur,
|
||
count(Mcu_OrderT_OrderHeaderID) as total
|
||
|
||
from one_etl.mcu_order
|
||
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
|
||
left join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
||
where Mcu_OrderMgm_McuID = PID
|
||
group by
|
||
umur order by total desc limit 1) as xx ;
|
||
|
||
|
||
|
||
SELECT
|
||
COUNT(distinct Mcu_OrderT_OrderHeaderID) into @total
|
||
FROM
|
||
one_etl.mcu_order
|
||
WHERE
|
||
Mcu_OrderMgm_McuID = PID;
|
||
|
||
select
|
||
group_concat(concat(
|
||
case
|
||
when row_number = 1 then \" kategori \"
|
||
when row_number = 2 then \"disusul \"
|
||
when row_number = 3 then \"kemudian \"
|
||
else '' end
|
||
, fitnes) separator \" , \") into @groupfitness
|
||
from (
|
||
|
||
SELECT
|
||
ROW_NUMBER() OVER (ORDER BY count(Mcu_OrderT_OrderHeaderID) desc ) AS row_number ,
|
||
Mcu_OrderMcu_FitnessName AS name,
|
||
count(Mcu_OrderT_OrderHeaderID) AS total ,
|
||
@total as jumlahpasien ,
|
||
concat(Mcu_OrderMcu_FitnessName ,\" \" ,count( Mcu_OrderT_OrderHeaderID) ,\" orang (\", round(count(Mcu_OrderT_OrderHeaderID) / @total * 100 ,2), \" %)\" ) as fitnes,
|
||
round(count(Mcu_OrderT_OrderHeaderID) / @total * 100 ,2) as persen
|
||
FROM one_etl.mcu_order
|
||
WHERE Mcu_OrderMgm_McuID = PID
|
||
GROUP BY Mcu_OrderMcu_FitnessID
|
||
order by total desc limit 3) as x ;
|
||
|
||
|
||
select
|
||
concat(
|
||
\" Mengacu pada Undang Undang No 1 tahun 1970 tentang Keselamatan Kerja dan Peraturan Pemerintah No 50 Tahun 2012, tentang Penerapan Sistem Manajemen Keselamatan Dan Kesehatan Kerja, dan dalam rangka melaksanakan system managemen kesehatan dan keselamatan kerja (SMK3), telah dilakukan pemeriksaan kesehatan berkala di \", M_CompanyName,\" pada tanggal \" ,date_format(Mgm_McuStartDate, '%d %M %Y') ,\" sampai dengan \" ,date_format(Mgm_McuEndDate , '%d %M %Y') ,\" yang diikuti oleh \",count(Mcu_OrderT_OrderHeaderID) ,
|
||
\" peserta. Kegiatan ini bertujuan untuk deteksi dini penyakit sebagai upaya pencegahan timbulnya penyakit yang lebih berat dan dalam rangka meningkatkan produktifitas kerja.
|
||
Dari hasil evaluasi pemeriksaan kesehatan berkala, status fitness to work secara keseluruhan adalah : \" ,@groupfitness
|
||
) as text1,
|
||
concat(\" Kegiatan pemeriksaan kesehatan berkala periode tahun \",year(Mgm_McuStartDate),\", \", M_CompanyName,\" dilaksanakan pada tanggal \" ,date_format(Mgm_McuStartDate, '%d %M %Y') ,\" sampai dengan \" ,date_format(Mgm_McuEndDate , '%d %M %Y') ,\", bertempat di masingmasing lokasi. Untuk sebagian peserta yang tidak bisa mengikuti kegiatan pemeriksaan di lokasi pada tanggal yang ditentukan, pemeriksaan dilakukan di Laboratorium Klinik PRAMITA.
|
||
\")as pelaksanaan,
|
||
|
||
CONVERT(concat(\" Pemeriksaan kesehatan berkala diikuti oleh \",count(Mcu_OrderT_OrderHeaderID) ,\" peserta, dari total sebanyak \",Mgm_McuTotalParticipant,\" Pegawai. Dari kehadiran peserta ini menunjukkan tingkat partisipasi dan kepedulian pegawai yang tinggi terhadap kesehatannya.\") , VARCHAR(1000))as kepesertaan,
|
||
concat(\" Hasil analisis kesehatan ini merupakan kajian ilmiah yang hanya berdasarkan studi klinis dan
|
||
pedoman klinis yang dipublikasikan dengan data-data yang terbatas menggunakan data
|
||
pemeriksaan yang ada, oleh karena itu kajian ini BUKAN dimaksudkan untuk membuat
|
||
diagnosa suatu penyakit, karena masih memerlukan pemeriksaan klinis lanjutan untuk menjadi
|
||
sebuah hasil diagnosis yang komprehensif. Meskipun konten dalam laporan kajian ini adalah
|
||
tentang masalah medis dan perawatan kesehatan tertentu, konten tersebut bukan pengganti
|
||
tindakan, atau pengganti saran medis yang dipersonalisasi dan tidak dimaksudkan untuk
|
||
digunakan sebagai satu satunya dasar untuk membuat keputusan terkait medis atau kesehatan
|
||
individual.
|
||
</br> Produk dan konten disediakan atas dasar sebagaimana adanya Pramita tidak menjamin
|
||
bahwa produk dan/atau konten apa pun di dalamnya bebas kesalahan, akurat, dapat
|
||
diandalkan dan akan dapat memenuhi kebutuhan Anda. Konten pada laporan ini tidak
|
||
dimaksudkan untuk menyajikan satu-satunya metode atau prosedur terbaik untuk situasi medis
|
||
yang ditangani. Referensi apa pun ke terapi atau produk komersial atau layanan tertentu dalam
|
||
laporan hasil pemeriksaan kesehatan ini bukan merupakan jaminan atau dukungan oleh
|
||
Pramita atas kualitas atau nilai terapi atau produk atau layanan tersebut atau klaim apa pun
|
||
yang dibuat oleh produsen atau penyedia terapi atau layanan tersebut.\" )as disclaimer,
|
||
|
||
concat(\" Dalam upaya meningkatkan derajat kesehatan masyarakat khususnya tenaga kerja, maka
|
||
pemerintah melakukan upaya peningkatan, pencegahan, penyembuhan dan upaya pemulihan
|
||
(rehabilitasi dalam berbagai bentuk informasi dan pelayanan). Hal tersebut tertuang dalam
|
||
Undang – Undang nomor 1 tahun 1970 dan Peraturan – peraturan lainnya yang mendukung
|
||
tentang keselamatan dan kesehatan kerja.
|
||
</br> Pemeriksaan kesehatan berkala (general medical check up) bertujuan untuk mengetahui status
|
||
kesehatan pekerja dan mendeteksi secara dini adanya penyakit akibat kerja, penyakit
|
||
degenerative maupun penyakit lainnya agar dapat ditangani secara dini. Penyakit akibat kerja
|
||
dapat timbul karena terpaparnya pekerja oleh agen dalam lingkungan pekerjaan ataupun
|
||
kebiasaan kerja yang kurang benar. Sedangkan penyakit degenerative seperti penyakit jantung,
|
||
hipertensi dan diabetes mellitus dapat timbul karena proses alamiah akibat proses penuaan,
|
||
gaya hidup, pola makan yang kurang berimbang, kurangnya aktifitas fisik dan olah raga.
|
||
</br> Sumber daya manusia adalah aset perusahaan yang sangat penting, karena itu \",M_CompanyName ,\"
|
||
melaksanakan pemeriksaan kesehatan berkala secara rutin untuk mempertahankan
|
||
produktifitas dan memenuhi ketentuan undang-undang. Diketahui bahwa interaksi tenaga kerja
|
||
dengan berbagai faktor bahaya dan risiko di tempat kerja adalah suatu hal yang tidak dapat
|
||
dihindari, maka perusahaan berupaya agar tercapai kondisi yang aman, efektif dan efisien.
|
||
</br> Salah satu kegiatan untuk mempertahankan derajat kesehatan karyawan adalah dengan
|
||
melaksanakan pemeriksaan kesehatan berkala yang dilaksanakan bekerja sama dengan
|
||
Laboratorium Klinik PRAMITA.\")
|
||
as LatarBelakang,
|
||
\"2.1. Mengetahui status kesehatan pegawai
|
||
</br>2.2. Mendeteksi secara dini adanya penyakit akibat kerja
|
||
</br>2.3. Mengetahui adanya penyakit degeneratif (seperti penyakit jantung, hipertensi dan diabetesmellitus)
|
||
</br>2.4. Mengetahui adanya penyakit - penyakit lainnya yang dapat timbul selama karyawan tersebut bekerja, sehingga dapat ditangani secara dini\" as TujuanKegiatan,
|
||
|
||
concat(\"</br> Bila peserta dibagi menurut kelompok umur < 30 tahun, 30 - < 40 tahun, 40 - < 50 tahun dan
|
||
lebih dari 50 tahun, maka kelompok umur yang terbanyak pada kegiatan pemeriksaan
|
||
kesehatan berkala tahun \",year(Mgm_McuStartDate),\" ini adalah kelompok umur \", @umur ,\" komposisi menurut
|
||
kelompok umur selengkapnya dapat dilihat pada tabel 2.3 sebagai berikut:
|
||
\" )as Komposisi,
|
||
concat(\"</br> Pemeriksaan kesehatan berkala ini merupakan salah satu bentuk implementasi System
|
||
Managemen Kesehatan dan Keselamatan Kerja (SMK3) di \",M_CompanyName ,\", yang bertujuan untuk deteksi dini adanya penyakit termasuk
|
||
penyakit akibat kerja (PAK), guna mencegah timbulnya kelainan yang lebih berat. Disamping
|
||
itu, Pemeriksaan ini pada akhirnya juga bertujuan untuk meningkatkan produktifitas pegawai
|
||
dan perusahaan. Pemeriksaan kesehatan yang dilakukan meliputi pemeriksaan Anamnesa, \",
|
||
@Test,\" . Jenis
|
||
pemeriksaan pada masing-masing pegawai ditentukan berdasarkan risiko penyakit menurut
|
||
kelompok umur, jenis kelamin dan jenis pekerjaan, dan telah ditetapkan oleh \",M_CompanyName ,\"
|
||
berdasarkan analisa dan evaluasi pelaksanaan K3. Jenis pemeriksaan selengkapnya dapat
|
||
dilihat pada table berikut :\") as JenisPemeriksaan
|
||
|
||
from one_etl.mgm_mcu
|
||
join m_company on Mgm_McuM_CompanyID = M_CompanyID
|
||
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mgm_McuID
|
||
|
||
where Mgm_McuID = PID;
|
||
end";
|
||
|
||
// $query = $this->dbx->query($sql);
|
||
if ($query) {
|
||
echo $v . "-OK";
|
||
} else {
|
||
echo $v . "-ERROR ";
|
||
}
|
||
}
|
||
}
|
||
}
|