Files
BE_IBL/application/controllers/tools/Upload_sp.php
2026-04-15 15:23:57 +07:00

2126 lines
87 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
class Upload_sp extends MY_Controller
{
var $db;
public function __construct()
{
parent::__construct();
}
function uploadSp()
{
// $sql_delimiter = "delimiter ;;";
$sql_data = [
"drop procedure if exists sp_rpt_exe_refraksi_1;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_refraksi_1`(IN `PID` int, IN `username` varchar(100))
begin
SELECT
COUNT(distinct Mcu_OrderT_OrderHeaderID) into @total
FROM
one_etl.mcu_order
WHERE
Mcu_OrderMgm_McuID = PID ;
select
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gangguan Refraksi adalah kondisi di mana cahaya yang masuk ke dalam mata tidak dapat difokuskan dengan jelas. Hal ini membuat bayangan benda terlihat buram atau tidak tajam. Penyebabnya bisa karena panjang bola mata terlalu panjang atau bahkan terlalu pendek, perubahan bentuk kornea, dan penuaan lensa mata. Menurut Badan Kesehatan Dunia (WHO) memperkirakan sebanyak 253 juta orang di seluruh dunia mengalami gangguan penglihatan, 36 juta mengalami kebutaan dan 217 juta mengalami gangguan penglihatan sedang hingga berat. Angka ini menunjukkan tingginya kejadian kelainan refraksi di sekitar kita.\" as refraksi1,
CAST(concat(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sebaran gangguan refraksi tampak pada diagram 6.7, dimana \", group_concat(hasil separator \" diikuti \") ) AS CHAR) as refraksi2
from
(
select
@total,
concat(kriteria, \" (\" , round(count(refraksi)/@total * 100,2) ,\"%) \" , count(refraksi),\" orang\") as hasil ,
round(count(refraksi)/@total * 100,2) as persen ,
count(refraksi) as refraksiY
from
(
select
case
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"Kelompok Umur < 30 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"Kelompok Umur 30 -< 40 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"Kelompok Umur 40 - < 50 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \" Kelompok Umur > 50 prosentasenya dengan prevalens\" else \"\"
end as kriteria,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) as refraksi,
\"Kelompok Umur\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID) as umur group by kriteria
union
select
@total,
concat(if(kriteria = 1, \"Kelompok Gender Laki-Laki prosentasenya dengan prevalens\",\"Kelompok Gender Perempuan prosentasenya dengan prevalens\") , \" (\" ,
round(count(refraksi)/@total * 100,2) ,\"%) \" ,
count(refraksi) ,\" orang\")
as hasil ,
round(count(refraksi)/@total * 100,2) as persen,
count(refraksi) as refraksiY
from
(
select
M_PatientM_SexID as kriteria ,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) as refraksi,
\"Kelompok Gender\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID ) as kelamin
group by kriteria order by refraksiY desc limit 2) as refraksi
; end;",
"drop procedure if exists sp_rpt_exe_pola_kelainan;",
"CREATE DEFINER=`root`@`localhost` 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 = 23 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 = 23
and Mcu_Top3KelainanIsActive = 'Y' limit 2
) as namakelainan
;
set lc_time_names = \"id_ID\";
select
concat(
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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;",
"drop procedure if exists sp_rpt_exe_pola_kebiasaan;",
" CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_pola_kebiasaan`(IN `PID` int, IN `username` varchar(100))
select
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pemeriksaan pola kebiasaan yang dimaksud adalah pola kebiasan hidup yang dapat mempengaruhi kesehatan seseorang, misalnya kebiasaan merokok, minum alkohol atau minum kopi. Pola kebiasaan hidup peserta terlihat dalam table 4.1 berikut : \" as polaKebiasaan
from one_etl.mgm_mcu
where Mgm_McuID = PID;",
"drop procedure if exists sp_rpt_exe_lemak_1;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_lemak_1`(IN `PID` int, IN `username` varchar(100))
begin
SELECT
COUNT(distinct Mcu_OrderT_OrderHeaderID) into @total
FROM
one_etl.mcu_order
WHERE
Mcu_OrderMgm_McuID = PID ;
select
CAST(concat(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gangguan metabolisme lemak ditandai dengan peningkatan salah satu atau lebih komponen profil lemak yakni cholesterol, LDL cholesterol dan trigliserida, atau penurunan kadar HDL cholesterol. Peningkatan atau penurunan dari komponen profil lemak lebih banyak disebabkan karena pola makan dan gaya hidup, walaupun bisa disebabkan dari faktor genetik. Peningkatan cholesterol, LDL choleserol dan trigliserida, serta penurunan kadar HDL cholesterol berhubungan dengan risiko penyakit jantung dan pembuluh darah.\" ,
\" Sebaran gangguan metabolisme lemak tampak pada diagram 6.3, dimana \", group_concat(hasil separator \" diikuti \") ) AS CHAR) as lemak
from
(
select
@total,
concat(kriteria, \" (\" , round(count(lemak)/@total * 100,2) ,\"%) \" , count(lemak),\" orang\") as hasil ,
round(count(lemak)/@total * 100,2) as persen ,
count(lemak) as lemakY
from
(
select
case
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"Kelompok Umur < 30 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"Kelompok Umur 30 -< 40 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"Kelompok Umur 40 - < 50 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \" Kelompok Umur > 50 prosentasenya dengan prevalens\" else \"\"
end as kriteria,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) as lemak,
\"Kelompok Umur\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID) as umur group by kriteria
union
select
@total,
concat(if(kriteria = 1, \"Kelompok Gender Laki-Laki prosentasenya dengan prevalens\",\"Kelompok Gender Perempuan prosentasenya dengan prevalens\") , \" (\" ,
round(count(lemak)/@total * 100,2) ,\"%) \" ,
count(lemak) ,\" orang\")
as hasil ,
round(count(lemak)/@total * 100,2) as persen,
count(lemak) as lemakY
from
(
select
M_PatientM_SexID as kriteria ,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) as lemak,
\"Kelompok Gender\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID ) as kelamin
group by kriteria order by lemakY desc limit 2) as lemak
;
END;",
"drop procedure if exists sp_rpt_exe_keluhan_klinik;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_keluhan_klinik`(IN `PID` int, IN `username` varchar(100))
begin
SELECT COUNT(*) into @totalPasien
FROM one_etl.mcu_order
WHERE Mcu_OrderMgm_McuID =PID;
select
concat(
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keluhan klinik ini diperoleh dari peserta pada saat dokter melakukan pemeriksaan anamnesa. Proses ini diperlukan untuk mengumpulkan informasi terkait kondisi yang sedang dirasakan oleh peserta saat pemeriksaan, agar dokter dapat menyimpulkan diagnosis dengan lebih komprehensif. Jenis keluhan
terbanyak yang disampaikan oleh peserta adalah \" , group_concat(hasil )) as hasil
from
(
SELECT
COUNT(distinct Mgm_RiwayatMgm_HeaderID ) as xTotalPerItem,
concat(Mcu_RiwayatName, \" sebanyak \",COUNT(*) ,\" orang (\", round((COUNT(distinct Mgm_RiwayatMgm_HeaderID) / @totalPasien *100 ),2) , \"%) \" )as hasil
FROM one_etl.mgm_header
JOIN one_etl.mgm_riwayat ON Mgm_HeaderID = Mgm_RiwayatMgm_HeaderID AND Mgm_HeaderIsActive = 'Y' AND Mgm_RiwayatIsActive = 'Y'
JOIN one_etl.mcu_riwayatgroup ON Mgm_RiwayatMcu_RiwayatGroupID = Mcu_RiwayatGroupID AND Mcu_RiwayatGroupIsActive = 'Y'
JOIn one_etl.mcu_riwayat ON Mgm_RiwayatMcu_RiwayatID = Mcu_RiwayatID and Mcu_RiwayatIsActive = 'Y'
WHERE Mgm_HeaderType = 'R'
AND Mgm_HeaderMgm_McuID = PID and Mcu_RiwayatGroupID = 2
GROUP BY Mcu_RiwayatID
ORDER BY xTotalPerItem DESC
LIMIT 0, 3 ) as x ; end;",
"drop procedure if exists sp_rpt_exe_hiperteni_1;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_hiperteni_1`(IN `PID` int, IN `username` varchar(100))
begin
SELECT
COUNT(distinct Mcu_OrderT_OrderHeaderID) into @total
FROM
one_etl.mcu_order
WHERE
Mcu_OrderMgm_McuID = PID ;
select
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hipertensi menurut pedoman JNC7 didefinisikan sebagai tekanan darah sistolik lebih dari atau sama dengan 140 mmHg, dan tekanan darah diastolik lebih dari atau sama dengan 90 mmHg. Berdasarkan penyebabnya, hipertensi dibedakan menjadi 2 kelompok, yaitu : hipertensi essensial atau hipertensi primer yang tidak diketahui penyebabnya (90%) dan hipertensi sekunder yang penyebabnya dapat ditentukan (10%), antara lain karena kelainan pembuluh darah ginjal, gangguan kelenjar tiroid (hipertiroid), penyakit kelenjar adrenal (hiperaldosteronisme) dan lain-lain\" as hipertensi1,
CAST(concat(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sebaran gangguan hipertensi tampak pada diagram 6.5, dimana \", group_concat(hasil separator \" diikuti \") ) AS CHAR) as hipertensi2
from
(
select
@total,
concat(kriteria, \" (\" , round(count(hipertensi)/@total * 100,2) ,\"%) \" , count(hipertensi),\" orang\") as hasil ,
round(count(hipertensi)/@total * 100,2) as persen ,
count(hipertensi) as hipertensiY
from
(
select
case
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"Kelompok Umur < 30 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"Kelompok Umur 30 -< 40 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"Kelompok Umur 40 - < 50 prosentasenya dengan prevalens\"
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \" Kelompok Umur > 50 prosentasenya dengan prevalens\" else \"\"
end as kriteria,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) as hipertensi,
\"Kelompok Umur\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID) as umur group by kriteria
union
select
@total,
concat(if(kriteria = 1, \"Kelompok Gender Laki-Laki prosentasenya dengan prevalens\",\"Kelompok Gender Perempuan prosentasenya dengan prevalens\") , \" (\" ,
round(count(hipertensi)/@total * 100,2) ,\"%) \" ,
count(hipertensi) ,\" orang\")
as hasil ,
round(count(hipertensi)/@total * 100,2) as persen,
count(hipertensi) as hipertensiY
from
(
select
M_PatientM_SexID as kriteria ,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) as hipertensi,
\"Kelompok Gender\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID ) as kelamin
group by kriteria order by hipertensiY desc limit 2) as hipertensi
;
end;",
"drop procedure if exists sp_rpt_exe_faktor_resiko;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_faktor_resiko`(IN `PID` int, IN `username` varchar(100))
select
concat(
\"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sebagain besar penyakit atau kelainan organ tubuh dapat disebabkan oleh beberapa faktor penyebab. Menentukan faktor penyebab penyakit sangat penting dilakukan untuk menegakkan diagnosa maupun mententukan tindakan yang tepat agar efektif dan miminimalkan risiko. Di sisi lain, mencari penyebab ini tidaklah mudah, terutama pada penyakit komunal yang memerlukan pendekatan analisa yang lebih mendalam dan komprehensif.
</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Analisa hubungan penyakit dengan faktor risiko atau penyebab dilakukan menggunakan pendekatan data dari hasil pemeriksaan kesehatan berkala yang tersedia. Walaupun pendekatan ini tentu belum sempurna, namun setidaknya dapat memberikaan gambaran atau bisa menyingkirkan altertanif penyebab. Analisa statistik dilakukan terhadap temuan dengan prevalensi paling tinggi atau yang dianggap penting, untuk mengetahui hubungan perilaku atau penyebab potensial dengan penyakit atau kelainan. Uji dilakukan dengan membandingkan apakah terdapat perbedaan kejadian penyakit antar kelompok peserta misalnya kelompok gender, umur atau unit kerja. Kemudian dilakukan uji apakah terdapat perbedaan kejadian penyakit pada kelompok “terekpose” dengan kelompok kontrol, untuk menjawab apakah terdapat hubungan antara perilaku atau penyebab potensial dengan penyakit. Pada table 6.8, menunjukkan angka kejadian pada masing-masing kelompok dan risiko penyebab terhadap timbulnya penyakit. Kelompok uji dilakukan pada peserta dengan ekspose risiko penyebab, sedangkan kelompok kontrol (pembanding) didapatkan dari peserta yang tidak terekspose risiko penyebab.
\"
) as faktorResiko
from one_etl.mgm_mcu
join m_company on Mgm_McuM_CompanyID = M_CompanyID
where Mgm_McuID = PID;",
"drop procedure if exists sp_rpt_exe_antropometri2;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_antropometri2`(IN `PID` int, IN `username` varchar(100))
SELECT
concat(
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dari table tersebut tampak bahwa rata-rata tinggi badan peserta adalah \",AntropometriTB,\" cm, berat badan \",AntropometriBB,\" kg, lingkar perut \",AntropometriLP, \" cm dan BMI \",AntropometriBMI,\" .
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Body Mass Index (BMI) atau Indeks Massa Tubuh (IMT) adalah nilai ukur yang didapat dari perhitungan berat badan dan tinggi badan untuk mengetahui kategori proporsi tubuh seseorang. Dari hasil pemeriksaan BMI, akan didapatkan lima kategori BMI, yakni underweight (kurus), normal, overweight (kelebihan berat badan), obese I (obesitas I), dan obese II (obesitas II). Berikut diagram 5.1, menunjukkan sebaran BMI (prosentase) dari seluruh lokasi dan diagram 5.2, menunjukkan sebaran kategori BMI dari setiap departemen :
\"
) as antropometri2
FROM one_etl.antropometri
WHERE AntropometriMgm_McuID = PID and AntropometriType = 'AVG';",
"drop procedure if exists sp_rpt_exe_antropometri;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_antropometri`(IN `PID` int, IN `username` varchar(100))
select
concat(
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pemeriksaan antropometri menilai ukuran, proporsi, dan komposisi tubuh manusia, antara lain meliputi pemeriksaan tinggi badan, berat badan, indek masa tubuh (body mass indeks), dan lingkar perut. Antropometri dapat menggambarkan status gizi dan bisa berkaitan dengan beberapa penyakit misalnya berat badan, BMI dan lingkar perut berkaitan dengan metabolic syndrome, gangguan toleransi glukosa dan hypertensi. Gambaran Antropometri pada peserta Pemeriksaan Kesehatan Berkala \",M_CompanyName ,\" tahun \",year(Mgm_McuStartDate),\", tampak pada table 5.1 berikut :\"
) as PemeriksaanAntropometri
from one_etl.mgm_mcu
join m_company on Mgm_McuM_CompanyID = M_CompanyID
where Mgm_McuID = PID;",
"drop procedure if exists sp_rpt_executive_summary_tabel_site_v2;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_tabel_site_v2`(IN `PID` int, IN `username` varchar(100))
begin
select concat(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kegiatan pemeriksaan kesehatan berkala periode tahun \",year(Mgm_McuStartDate),\", \",M_CompanyName,\" diikuti oleh semua department, meliputi \", group_concat(distinct M_PatientKedudukan),\". Adapun komposisi kehadiran peserta masing-masing site perusahaan tampak pada tabel berikut :
\") into @peserta
from one_etl.mgm_mcu
join one_etl.mcu_order on Mgm_McuID = Mcu_OrderMgm_McuID
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID
and T_OrderHeaderIsActive = 'Y'
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_company on Mgm_McuM_CompanyID = M_CompanyID
and M_PatientIsActive = 'Y'
where Mgm_McuIsActive = 'Y'
and Mgm_McuID = PID limit 1
;
select
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan ) as M_PatientLocation,
count(*) as total,@peserta as peserta
from one_etl.mgm_mcu
join one_etl.mcu_order on Mgm_McuID = Mcu_OrderMgm_McuID
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID
and T_OrderHeaderIsActive = 'Y'
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
and M_PatientIsActive = 'Y'
where Mgm_McuIsActive = 'Y'
and Mgm_McuID = PID
group by if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientLocation )
;
end;",
"drop procedure if exists sp_rpt_executive_summary_mcu_001_v2;",
" CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_mcu_001_v2`(IN `PID` int, IN `username` varchar(100))
select
Mgm_McuID,
Mgm_McuNumber,
Mgm_McuNumberNational,
Mgm_McuStartDate,
Mgm_McuEndDate,
M_CompanyName,
M_CompanyAddress,
concat(\"TAHUN \" ,date_format(Mgm_McuStartDate, \"%Y\")) as tahun
from one_etl.mgm_mcu
join m_company on Mgm_McuM_CompanyID = M_CompanyID
where Mgm_McuIsActive = 'Y'
and Mgm_McuID = PID;",
"drop procedure if exists sp_rpt_exe_sum_table_pola_kelainan;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_table_pola_kelainan`(IN `PID` int, IN `username` varchar(100))
BEGIN
WITH max AS (
SELECT
COUNT(distinct Mgm_HeaderT_OrderHeaderID) AS maxAmount
FROM
one_etl.mgm_header
WHERE
Mgm_HeaderIsActive = 'Y'
AND Mgm_HeaderMgm_McuID = PID
),
perItem AS (
select
count(xTotalPerItem) as xTotalPerItem, Mcu_KelainanGroupName, Mgm_HeaderMgm_McuID
from
(
SELECT
distinct Mgm_HeaderT_OrderHeaderID AS xTotalPerItem
, if (Mcu_KelainanGroupID IN (2,3,16,22,17,18,19,20,28,29) , Mcu_KelainanGroupName, Mcu_KelainanName) as Mcu_KelainanGroupName
, Mgm_HeaderMgm_McuID
FROM
one_etl.mgm_header
JOIN one_etl.mgm_detail
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
AND Mgm_HeaderIsActive = 'Y'
AND Mgm_DetailIsActive = 'Y'
JOIN one_etl.mcu_kelainangroup
ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
AND Mcu_KelainanGroupIsActive = 'Y'
join one_etl.mcu_kelainan on Mgm_DetailMcu_KelainanID = Mcu_KelainanID and Mcu_KelainanIsActive = 'Y'
WHERE
Mgm_HeaderMgm_McuID = PID and Mcu_KelainanName <> 'Normal' and Mcu_KelainanGroupID not in (1,5)
and Mcu_KelainanID not in (63,12) ) as orderid group by Mcu_KelainanGroupName
order by xTotalPerItem DESC limit 0,10
)
SELECT
perItem.xTotalPerItem
, perItem.Mcu_KelainanGroupName
, perItem.Mgm_HeaderMgm_McuID
, (perItem.xTotalPerItem / max.maxAmount) * 100 AS Percentage
FROM
perItem
, max ;
END;",
"drop procedure if exists sp_rpt_exe_sum_table_pola_kebiasaan;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_table_pola_kebiasaan`(IN `PID` int, IN `username` varchar(100))
select
M_PatientKedudukan as site_perusahaan ,
sum(if(kode = 'A' and data = 'Tidak' , 1,0 ) ) as Tidak_Merokok_Y,
sum(if(kode = 'A' and data = 'Ya' , 1,0 ) ) as Merokok_Y,
sum(if(kode = 'A' and data = 'N/A' , 1,0 ) ) as Merokok_NA ,
sum(if(kode = 'B' and data = 'Tidak' , 1,0 ) ) as Tidak_Minum_Alkohol_Y,
sum(if(kode = 'B' and data = 'Ya' , 1,0 ) ) as Minum_Alkohol_Y,
sum(if(kode = 'B' and data = 'N/A' , 1,0 ) ) as Alkohol_NA,
sum(if(kode = 'C' and data = 'Tidak' , 1,0 ) ) as Tidak_Rutin_Olahraga_Y,
sum(if(kode = 'C' and data = 'Ya' , 1,0 ) ) as Olahraga_Y,
sum(if(kode = 'C' and data = 'N/A' , 1,0 ) ) as Olahraga_NA,
count(distinct Mcu_OrderT_OrderHeaderID ) as Peserta
from
(
SELECT Mcu_OrderMgm_McuID ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as M_PatientKedudukan ,
Mcu_OrderT_OrderHeaderID ,
\"A\" as kode,
\"merokok\" as kodedetail,
ifnull(`fn_get_executive_merokok`(Mcu_OrderT_OrderHeaderID ),\"N/A\") as data
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID
union
SELECT Mcu_OrderMgm_McuID ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as M_PatientKedudukan ,
Mcu_OrderT_OrderHeaderID ,
\"B\" as kode,
\"Minum Alkohol\" as kodedetail,
ifnull(`fn_get_executive_alkohol`(Mcu_OrderT_OrderHeaderID ),\"N/A\") as data
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID
union
SELECT Mcu_OrderMgm_McuID ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as M_PatientKedudukan ,
Mcu_OrderT_OrderHeaderID ,
\"C\" as kode,
\"olahraga\" as kodedetail,
ifnull(`fn_get_executive_olahraga`(Mcu_OrderT_OrderHeaderID ) ,\"N/A\") as data
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID ) as xx group by site_perusahaan;",
"drop procedure if exists sp_rpt_executive_summary_tabel_gender_v2;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_tabel_gender_v2`(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_McuID = PID ;
select
\"A\" as Kode,
\"Gender\" as Groups ,
M_SexName as Nama ,
count(Mcu_OrderT_OrderHeaderID) as total ,
Round((count(Mcu_OrderT_OrderHeaderID) / @peserta * 100 ),2) as Persen
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'
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID
group by M_SexID
;
end;",
"drop procedure if exists sp_rpt_executive_summary_table_kel_umur_v2;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_table_kel_umur_v2`(IN `PID` int, IN `username` varchar(100))
begin
select
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as M_PatientLocation,
case
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"1. < 30 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"2. 30 -< 40 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"3. 40 - < 50 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"4. > 50 th\" else \"\"
end as umur,
count(Mcu_OrderT_OrderHeaderID) as total,
concat('http://localhost/one-api/tools/mcu_chart/mcu003/',Mcu_OrderMgm_McuID) as Graph
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 if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan),
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;
end;",
"drop procedure if exists sp_rpt_executive_summary_tabel_jenis_test_v2;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_tabel_jenis_test_v2`(IN `PID` int, IN `username` varchar(100))
select
T_TestName as Nat_TestName,
T_TestSasCode as Nat_TestCode
from (
select
Mgm_McuID,
T_TestSasCode,
case
when Nat_TestNat_SubSubGroupID = 15 then concat(Nat_SubSubGroupName , \" ( \" , group_concat(distinct T_TestName),\" )\")
when Nat_TestNat_SubSubGroupID = 17 then concat(Nat_SubSubGroupName , \" ( \" , group_concat(distinct T_TestName),\" )\")
else group_concat(distinct T_TestName) end as T_TestName
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'
left join t_test on T_OrderDetailT_TestID = T_TestID
left join nat_test ON T_TestNat_TestID = Nat_TestID
left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y'
where Mgm_McuID = PID and T_TestIsPrice = 'Y' and Nat_TestPriceSumToNat_TestID = '' and T_TestNat_GroupID = 1
group by Nat_SubSubGroupID
union
select
Mgm_McuID,
T_TestSasCode,
T_TestName
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'
left join t_test on T_OrderDetailT_TestID = T_TestID
left join nat_test ON T_TestNat_TestID = Nat_TestID
left join nat_subsubgroup on Nat_TestNat_SubSubGroupID = Nat_SubSubGroupID and Nat_SubSubGroupIsActive = 'Y'
where Mgm_McuID = PID and T_TestIsPrice = 'Y' and Nat_TestPriceSumToNat_TestID = '' and T_TestNat_GroupID <> 1 group by T_TestID ) as xx
order by T_TestSasCode;",
"drop procedure if exists sp_rpt_exe_sum_penyebab;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_penyebab`(IN `PID` int, IN `username` varchar(100))
select
\"1\" as nomor,
\"Kelompok Umur\" as kriteria ,
NULL as lemakY,
NULL as lemakN,
NULL as hipertensiY,
NULL as hipertensiN,
NULL as refraksiY,
NULL as refraksiN,
NULL as kode,
\"1\" as kodeA
union
select
\"\" as nomor,
if(kode = \"Kelompok Umur\" ,SUBSTRING(kriteria, 3, 15) , kriteria) as kriteria,
count(lemak) as lemakY,
sum(if(lemak is null , 1,0)) as lemakN,
count(hipertensi) as hipertensiY,
sum(if(hipertensi is null , 1,0)) as hipertensiN,
count(refraksi) as refraksiY,
sum(if(refraksi is null , 1,0)) as refraksiN,
kode,
\"1\" as kodeA
from
(
select
case
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"1.< 30 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"2.30 -< 40 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"3.40 - < 50 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"4.> 50 th\" else \"\"
end as kriteria,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) as lemak,
`fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) as hipertensi,
`fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) as refraksi,
\"Kelompok Umur\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID ) as umur group by kriteria
union
select
\"2\" as nomor,
kriteria ,
count(lemak) as lemakY,
sum(if(lemak is null , 1,0)) as lemakN,
count(hipertensi) as hipertensiY,
sum(if(hipertensi is null , 1,0)) as hipertensiN,
count(refraksi) as refraksiY,
sum(if(refraksi is null , 1,0)) as refraksiN,
kode,
\"2\" as kodeA
from
(
select
\"Obesitas\" as kriteria ,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) as lemak,
`fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) as hipertensi,
`fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) as refraksi,
\"Obesitas\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID
and `fn_get_executive_bmi`(Mcu_OrderT_OrderHeaderID ) IN ('Obese I','Obese II') ) as obesitas
union
select
\"3\" as nomor,
kriteria ,
count(lemak) as lemakY,
sum(if(lemak is null , 1,0)) as lemakN,
count(hipertensi) as hipertensiY,
sum(if(hipertensi is null , 1,0)) as hipertensiN,
count(refraksi) as refraksiY,
sum(if(refraksi is null , 1,0)) as refraksiN,
kode,
\"3\" as kodeA
from
(
select
\"Tidak berolah raga\" as kriteria ,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) as lemak,
`fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) as hipertensi,
`fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) as refraksi,
\"Tidak berolah raga\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID and
`fn_get_executive_olahraga`(Mcu_OrderT_OrderHeaderID ) = 'Tidak' ) as olahraga
union
select
\"4\" as nomor,
\"Kelompok Gender\" as kriteria ,
NULL as lemakY,
NULL as lemakN,
NULL as hipertensiY,
NULL as hipertensiN,
NULL as refraksiY,
NULL as refraksiN,
NULL as kode,
\"4\" as kodeA
union
select
\"\" as nomor,
if(kriteria = 1, \"Laki-Laki\",\"Perempuan\") as kriteria ,
count(lemak) as lemakY,
sum(if(lemak is null , 1,0)) as lemakN,
count(hipertensi) as hipertensiY,
sum(if(hipertensi is null , 1,0)) as hipertensiN,
count(refraksi) as refraksiY,
sum(if(refraksi is null , 1,0)) as refraksiN,
kode,
\"4\" as kodeA
from
(
select
M_PatientM_SexID as kriteria ,
Mcu_OrderT_OrderHeaderID,
`fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) as lemak,
`fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) as hipertensi,
`fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) as refraksi,
\"Kelompok Gender\" as kode
from one_etl.mcu_order
join t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient on M_PatientID = T_OrderHeaderM_PatientID
where Mcu_OrderMgm_McuID = PID ) as kelamin
group by kriteria;",
"drop procedure if exists sp_rpt_exe_sum_resiko;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_resiko`(IN `PID` int, IN `username` varchar(100))
select
if(kode = 4,SUBSTRING(kriteria, 3, 15) , kriteria) as kriteria,
kriteria as kriteria1 ,
SUM(if(bmi = 'Underweight' ,jumlah, 0 )) as Underweight,
SUM(if(bmi = 'Normal' ,jumlah, 0 )) as Normal,
SUM(if(bmi = 'Overweight' ,jumlah, 0 )) as Overweight,
SUM(if(bmi = 'Obese I' ,jumlah, 0 )) as ObeseI ,
SUM(if(bmi = 'Obese II' ,jumlah, 0 )) as ObeseII,
SUM(if(bmi = 'Underweight' ,jumlah, 0 )) +
SUM(if(bmi = 'Normal' ,jumlah, 0 )) +
SUM(if(bmi = 'Overweight' ,jumlah, 0 )) +
SUM(if(bmi = 'Obese I' ,jumlah, 0 ))+
SUM(if(bmi = 'Obese II' ,jumlah, 0 )) as total
from
(
select
*
from
(
SELECT
Mcu_OrderT_OrderHeaderID as id ,
\"Merokok\" as kriteria,
`fn_get_executive_bmi`(Mcu_OrderT_OrderHeaderID ) as bmi,
count(Mcu_OrderT_OrderHeaderID ) as jumlah ,
'1' as kode
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID and
`fn_get_executive_merokok`(Mcu_OrderT_OrderHeaderID ) = 'Ya'
group by `fn_get_executive_bmi`(Mcu_OrderT_OrderHeaderID ) ) as merokok
union
select
*
from
(
SELECT
Mcu_OrderT_OrderHeaderID as id ,
\"Tidak berolah raga\" as kriteria,
`fn_get_executive_bmi`(Mcu_OrderT_OrderHeaderID ) as bmi,
count(distinct Mcu_OrderT_OrderHeaderID ) as jumlah ,
'2' as kode
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID and
`fn_get_executive_olahraga`(Mcu_OrderT_OrderHeaderID ) = 'Tidak'
group by `fn_get_executive_bmi`(Mcu_OrderT_OrderHeaderID ) ) as olahraga
union
SELECT
Mgm_HeaderT_OrderHeaderID as id ,
M_SexName as kriteria,
Mcu_KelainanName as bmi,
count(Mgm_HeaderT_OrderHeaderID ) as jumlah ,
'3' as kode
FROM one_etl.mgm_header
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
left join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
left join one_etl.mcu_kelainan on Mgm_DetailMcu_KelainanID = Mcu_KelainanID
join one_etl.mcu_kelainangroup on Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
join m_sex on M_PatientM_SexID = M_SexID
where Mgm_HeaderMgm_McuID = PID and Mgm_DetailMcu_KelainanGroupID = '1'
group by M_PatientM_SexID,Mcu_KelainanID
union
SELECT
Mgm_HeaderT_OrderHeaderID as id ,
case
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"1.< 30 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"2.30 -< 40 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"3.40 - < 50 th\"
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"4.> 50 th\" else \"\"
end as kriteria,
Mcu_KelainanName as bmi,
count(distinct Mgm_HeaderT_OrderHeaderID ) as jumlah ,
'4' as kode
FROM one_etl.mgm_header
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
left join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
left join one_etl.mcu_kelainan on Mgm_DetailMcu_KelainanID = Mcu_KelainanID
join one_etl.mcu_kelainangroup on Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mgm_HeaderMgm_McuID = PID and Mgm_DetailMcu_KelainanGroupID = '1'
group by
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
,Mcu_KelainanID ) as xx group by kriteria order by kode,kriteria1;",
"drop procedure if exists sp_rpt_exe_sum_table_antropometri;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_table_antropometri`(IN `PID` int, IN `username` varchar(100))
begin
SELECT
CASE
WHEN AntropometriType = 'MIN' THEN 'Nilai Minimal'
WHEN AntropometriType = 'MAX' THEN 'Nilai Maksimal'
WHEN AntropometriType = 'AVG' THEN 'Rata - rata'
WHEN AntropometriType = 'MED' THEN 'Median'
ELSE AntropometriType
END AS AntropometriType ,
AntropometriTB,
AntropometriBB,
AntropometriLP,
AntropometriBMI,
AntropometriMgm_McuID
FROM one_etl.antropometri
WHERE AntropometriMgm_McuID = PID;
end;",
"drop procedure if exists sp_rpt_executive_summary_tiga_text;",
"CREATE DEFINER=`root`@`localhost` 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 name desc) 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
(
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
order by Mcu_Top3KelainanID,hasil desc ) as xxx ) as xxxx
where row_num = 1
;
end;",
"drop procedure if exists sp_rpt_executive_summary_tiga_table;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_tiga_table`(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
Mcu_Top3KelainanMgm_McuID,
Mcu_Top3KelainanID ,
Mcu_Top3KelainanMcu_KelainangroupName ,
departemen,
pasien,
pasien - kelainan - NaN as normal,
kelainan,
NaN,
round(kelainan / pasien * 100,2) as PersentaseKelainan,
total
from
(
select
Mcu_Top3KelainanMgm_McuID,
Mcu_Top3KelainanID,
Mcu_Top3KelainanMcu_KelainangroupName ,
departemen,
count(Mcu_OrderT_OrderHeaderID) as pasien,
ifnull(`fn_get_executive_top3`(Mcu_Top3KelainanMgm_McuID, departemen,Mcu_Top3KelainanMcu_KelainangroupName),0) as kelainan,
ifnull(`fn_get_executive_peserta_top3`(Mcu_Top3KelainanMgm_McuID, departemen,Mcu_Top3KelainanMcu_KelainangroupName),0) as NaN,
@peserta as total
from
(
select
Mcu_Top3KelainanMgm_McuID ,
Mcu_Top3KelainanID,
ROW_NUMBER() OVER(order BY Mcu_Top3KelainanID) AS row_num ,
Mcu_Top3KelainanMcu_KelainangroupName ,
Mcu_Top3KelainanMcu_KelainanGroupID ,
Mcu_Top3KelainanMcuKelainanID ,
Mcu_OrderT_OrderHeaderID ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as departemen
from one_etl.mcu_top3_kelainan
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mcu_Top3KelainanMgm_McuID
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mcu_Top3KelainanMgm_McuID = PID and Mcu_Top3KelainanIsActive = 'Y' and Mcu_Top3KelainanMcu_KelainanGroupID <> 0
union
select
Mcu_Top3KelainanMgm_McuID ,
Mcu_Top3KelainanID,
ROW_NUMBER() OVER(order BY Mcu_Top3KelainanID) AS row_num ,
Mcu_Top3KelainanMcu_KelainangroupName ,
Mcu_Top3KelainanMcu_KelainanGroupID ,
Mcu_Top3KelainanMcuKelainanID ,
Mcu_OrderT_OrderHeaderID ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as departemen
from one_etl.mcu_top3_kelainan
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mcu_Top3KelainanMgm_McuID
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mcu_Top3KelainanMgm_McuID = PID and Mcu_Top3KelainanIsActive = 'Y' and Mcu_Top3KelainanMcuKelainanID <> 0
) as aaa
group by
Mcu_Top3KelainanMcu_KelainangroupName,departemen
order by Mcu_Top3KelainanID ) as xxx ;
end;",
"drop procedure if exists sp_rpt_executive_summary_tiga;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_tiga`(IN `PID` int, IN `username` varchar(100))
select
ROW_NUMBER() OVER(order BY Mcu_Top3KelainanID) AS row_num ,
concat(\"6.\", ROW_NUMBER() OVER(order BY Mcu_Top3KelainanID) ,\" \" , Mcu_Top3KelainanMcu_KelainangroupName ) as judul ,
concat(\"Tabel 6.\", ROW_NUMBER() OVER(order BY Mcu_Top3KelainanID),\" Sebaran \" , Mcu_Top3KelainanMcu_KelainangroupName, \" Per Departement\") as JudulTabel,
concat(\"Diagram 6.\", ROW_NUMBER() OVER(order BY Mcu_Top3KelainanID),\" Sebaran \" , Mcu_Top3KelainanMcu_KelainangroupName , \" menurut Gender dan Kelompok Umur\") as JudulDiagram,
Mcu_Top3KelainanXTotalPerItem,
Mcu_Top3KelainanMcu_KelainangroupName ,
Mcu_Top3KelainanMcu_KelainanGroupID ,
Mcu_Top3KelainanMcuKelainanID ,
Mcu_Top3KelainanMgm_McuID ,
Mcu_Top3KelainanPercentage,
Mcu_Top3KelainanDescription,
concat(\"http://localhost/one-api/tools/mcu_chart_v3/mcu016/\",Mcu_Top3KelainanMgm_McuID , \"/\",Mcu_Top3KelainanMcu_KelainanGroupID,\"/\",Mcu_Top3KelainanMcuKelainanID ) as chart,
Mcu_Top3KelainanID
from one_etl.mcu_top3_kelainan
where Mcu_Top3KelainanMgm_McuID = PID and Mcu_Top3KelainanIsActive = 'Y';",
"drop procedure if exists sp_rpt_executive_summary_gender_text;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_executive_summary_gender_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_McuID = PID ;
select
count(Mcu_OrderT_OrderHeaderID) into @wanita
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'
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID and M_SexID = 2 limit 1;
select
count(Mcu_OrderT_OrderHeaderID) into @pria
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'
left join m_sex ON M_PatientM_SexID = M_SexID AND M_SexIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID and M_SexID = 1 limit 1;
select
concat(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Berdasarkan kelompok gender, peserta kegiatan pemeriksaan kesehatan berkala terdiri dari
peserta wanita \", @wanita,\" orang (\",Round((@wanita / @peserta * 100 ),2) ,\" %), dan peserta pria sebanyak \" ,@pria,\" orang (\",Round((@pria/ @peserta * 100 ),2) ,\" %)\")
as pesertaMcu
from one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
where Mcu_OrderMgm_McuID = PID group by Mcu_OrderMgm_McuID ;
end;",
"drop procedure if exists sp_rpt_exe_sum_table_refraksi;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_table_refraksi`(IN `PID` int, IN `username` varchar(100))
select
departemen ,
SUM(if(data = 'Nan' , 1,0)) as NaN,
SUM(if(data = 'Normal' , 1,0)) as Normal,
SUM(if(data = 'Kelainan' , 1,0)) as Kelainan
from
(
select
Mcu_OrderT_OrderHeaderID ,
ifnull(Mgm_HeaderID,'NaN') as NaN,
case
when Mgm_HeaderID is null then 'Nan'
when `fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) is null then 'Normal'
when `fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) is not null then 'Kelainan'
end
as Data ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as departemen ,
`fn_get_executive_refraksi`(Mcu_OrderT_OrderHeaderID) as kelainan
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
left join one_etl.mgm_header on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID
where Mcu_OrderMgm_McuID = PID group by Mcu_OrderID ) as xxx group by departemen;",
"drop procedure if exists sp_rpt_exe_sum_table_lemak;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_table_lemak`(IN `PID` int, IN `username` varchar(100))
select
departemen ,
SUM(if(data = 'Nan' , 1,0)) as NaN,
SUM(if(data = 'Normal' , 1,0)) as Normal,
SUM(if(data = 'Kelainan' , 1,0)) as Kelainan
from
(
select
Mcu_OrderT_OrderHeaderID ,
ifnull(Mgm_HeaderID,'NaN') as NaN,
case
when Mgm_HeaderID is null then 'Nan'
when `fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) is null then 'Normal'
when `fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) is not null then 'Kelainan'
end
as Data ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as departemen ,
`fn_get_executive_lemak_new`(Mcu_OrderT_OrderHeaderID) as kelainan
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
left join one_etl.mgm_header on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID
where Mcu_OrderMgm_McuID = PID group by Mcu_OrderID ) as xxx group by departemen;",
"drop procedure if exists sp_rpt_exe_sum_table_hipertensi;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_table_hipertensi`(IN `PID` int, IN `username` varchar(100))
select
departemen ,
SUM(if(data = 'Nan' , 1,0)) as NaN,
SUM(if(data = 'Normal' , 1,0)) as Normal,
SUM(if(data = 'Kelainan' , 1,0)) as Kelainan
from
(
select
Mcu_OrderT_OrderHeaderID ,
ifnull(Mgm_HeaderID,'NaN') as NaN,
case
when Mgm_HeaderID is null then 'Nan'
when `fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) is null then 'Normal'
when `fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) is not null then 'Kelainan'
end
as Data ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as departemen ,
`fn_get_executive_hipertensi`(Mcu_OrderT_OrderHeaderID) as kelainan
FROM one_etl.mcu_order
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
left join one_etl.mgm_header on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID
where Mcu_OrderMgm_McuID = PID group by Mcu_OrderID ) as xxx group by departemen;",
"drop procedure if exists sp_rpt_exe_sum_ringkasan2;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_ringkasan2`(IN `PID` int, IN `username` varchar(100))
begin
SELECT
COUNT(distinct Mcu_OrderT_OrderHeaderID) into @total
FROM
one_etl.mcu_order
WHERE
Mcu_OrderMgm_McuID = PID;
WITH max AS (
SELECT
COUNT(distinct Mgm_HeaderT_OrderHeaderID) AS maxAmount
FROM
one_etl.mgm_header
WHERE
Mgm_HeaderIsActive = 'Y'
AND Mgm_HeaderMgm_McuID = PID
),
perItem AS (
select
count(xTotalPerItem) as xTotalPerItem, Mcu_KelainanGroupName, Mgm_HeaderMgm_McuID
from
(
SELECT
distinct Mgm_HeaderT_OrderHeaderID AS xTotalPerItem
, if (Mcu_KelainanGroupID IN (2,3,16,22,17,18,19,20,28,29) , Mcu_KelainanGroupName, Mcu_KelainanName) as Mcu_KelainanGroupName
, Mgm_HeaderMgm_McuID
FROM
one_etl.mgm_header
JOIN one_etl.mgm_detail
ON Mgm_HeaderID = Mgm_DetailMgm_HeaderID
AND Mgm_HeaderIsActive = 'Y'
AND Mgm_DetailIsActive = 'Y'
JOIN one_etl.mcu_kelainangroup
ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
AND Mcu_KelainanGroupIsActive = 'Y'
join one_etl.mcu_kelainan on Mgm_DetailMcu_KelainanID = Mcu_KelainanID and Mcu_KelainanIsActive = 'Y'
WHERE
Mgm_HeaderMgm_McuID = PID and Mcu_KelainanName <> 'Normal' and Mcu_KelainanGroupID not in (1,5)
and Mcu_KelainanID not in (63,12) ) as orderid group by Mcu_KelainanGroupName
order by xTotalPerItem DESC limit 0,3
)
SELECT
concat( \"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dari hasil Medical Check Up di temuan kelainan atau penyakit terbesar adalah \",
group_concat( concat(perItem.Mcu_KelainanGroupName ,' ' , perItem.xTotalPerItem ,' Orang ( ' , round((perItem.xTotalPerItem / max.maxAmount) * 100,2) , ' % )') separator \" \" ) ) as ringkasanEksekutif2
FROM
perItem
, max
;
END;",
"drop procedure if exists sp_rpt_exe_sum_note;",
" CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_note`(IN `PID` int, IN `username` varchar(100))
select
1 as Nat_TestName,
2 as Nat_TestCode,
3 as T_TestID ,
Mcu_Snapshot_NoteMcu_Note_HeaderName as Mcu_Note_HeaderName ,
Mcu_Snapshot_NoteMcu_Note_HeaderNote as Mcu_Note_HeaderNote,
Mcu_Snapshot_NoteID as Mcu_Note_HeaderID,
Mcu_Snapshot_NoteMcu_Note_HeaderCode as Mcu_Note_HeaderCode
from one_etl.mcu_snapshot_note
where Mcu_Snapshot_NoteMgm_McuID = PID;",
"drop procedure if exists sp_rpt_exe_sum_fitness;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_fitness`(IN `PID` int, IN `username` varchar(100))
begin
select
group_concat(fitnes separator '</br>') into @fitnes
from
(
SELECT
concat(ROW_NUMBER() OVER (ORDER BY Mcu_OrderMcu_FitnessID ) , \". \" , Mcu_OrderMcu_FitnessName ) as fitnes
FROM one_etl.mcu_order
WHERE Mcu_OrderMgm_McuID = PID
GROUP BY Mcu_OrderMcu_FitnessID order by Mcu_OrderMcu_FitnessID ) 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 yang terbanyak adalah 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 ) as x ;
select
concat(
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status fitness pada hasil pemeriksaan kesehatan berkala pada setiap peserta dibuat berdasarkan Standart Medical Check Up Karyawan\",\" . Status fitness ini terdiri dari
</br>\",@fitnes ) as Fitness1,
concat(\"</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Secara keseluruhan sebaran tingkat fitness hasil pemeriksaan kesehatan berkala periode tahun \",year(Mgm_McuStartDate),\", \", M_CompanyName,\" , dari sana tampak bahwa\" , @groupfitness ,\" .\"
) as fitness
from one_etl.mgm_mcu
join m_company on Mgm_McuM_CompanyID = M_CompanyID
where Mgm_McuID = PID;
end;",
"drop procedure if exists sp_rpt_exe_sum_bmi;",
"CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_sum_bmi`(IN `PID` int, IN `username` varchar(100))
begin
select
group_concat(kriteria separator \" dan \") into @hasil
from
(
select
kriteria,
SUM(if(bmi = 'Overweight' ,jumlah, 0 )) as Overweight,
SUM(if(bmi = 'Obese I' ,jumlah, 0 )) as ObeseI ,
SUM(if(bmi = 'Obese II' ,jumlah, 0 )) as ObeseII,
SUM(if(bmi = 'Overweight' ,jumlah, 0 )) +
SUM(if(bmi = 'Obese I' ,jumlah, 0 ))+
SUM(if(bmi = 'Obese II' ,jumlah, 0 )) as total
from
(
SELECT
Mgm_HeaderT_OrderHeaderID as id ,
concat(\"Kelompok Gender \",M_SexName ) as kriteria,
Mcu_KelainanName as bmi,
count(Mgm_HeaderT_OrderHeaderID ) as jumlah ,
'3' as kode
FROM one_etl.mgm_header
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
left join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
left join one_etl.mcu_kelainan on Mgm_DetailMcu_KelainanID = Mcu_KelainanID
join one_etl.mcu_kelainangroup on Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
join m_sex on M_PatientM_SexID = M_SexID
where Mgm_HeaderMgm_McuID = PID and Mgm_DetailMcu_KelainanGroupID = '1'
group by M_PatientM_SexID,Mcu_KelainanID
union
SELECT
Mgm_HeaderT_OrderHeaderID as id ,
case
when left(T_OrderHeaderM_PatientAge,2) < '30' then \"Kelompok Umur < 30 \"
when left(T_OrderHeaderM_PatientAge,2) >= '30' and left(T_OrderHeaderM_PatientAge,2) < '40' then \"Kelompok Umur 30 -< 40 \"
when left(T_OrderHeaderM_PatientAge,2) >= '40' and left(T_OrderHeaderM_PatientAge,2) < '50' then \"Kelompok Umur 40 - < 50 \"
when left(T_OrderHeaderM_PatientAge,2) >= '50' then \"Kelompok Umur > 50 \" else \"\"
end as kriteria,
Mcu_KelainanName as bmi,
count(distinct Mgm_HeaderT_OrderHeaderID ) as jumlah ,
'4' as kode
FROM one_etl.mgm_header
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
left join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
left join one_etl.mcu_kelainan on Mgm_DetailMcu_KelainanID = Mcu_KelainanID
join one_etl.mcu_kelainangroup on Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mgm_HeaderMgm_McuID = PID and Mgm_DetailMcu_KelainanGroupID = '1'
group by
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
,Mcu_KelainanID ) as xx group by kriteria order by total desc limit 2 ) as xxx ;
SELECT COUNT(*) into @totalPasien
FROM one_etl.mgm_header
left JOIN one_etl.mgm_detail
ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID
AND Mgm_DetailIsActive = 'Y' AND Mgm_HeaderIsActive = 'Y'
AND Mgm_DetailMcu_KelainanGroupID = 1
AND Mgm_HeaderMgm_McuID = PID
JOIN one_etl.mcu_kelainan
ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
AND Mcu_KelainanIsActive = 'Y' ;
select
concat(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data diatas menunjukkan bahwa sebaran BMI terbanyak adalah \", group_concat(total separator \" dan \") ,\"
</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dari BMI juga dapat memprediksi resiko kesehatan seseorang mulai dari ; hypertensi, penyakit jantung, stroke, diabetes, kolestrol, malnutrisi, anemia atau siklus menstruasi yang tidak teratur dan masih banyak lagi. BMI yang rendah bisa berkaitan dengan status gizi khususnya mal-nutrisi, atau karena adanya penyakit tertentu. Sedangkan, overweight atau obese berkaitan dengan pola makan dan gaya hidup, disamping faktor genetik. Tabel 5.2 berikut menunjukkan sebaran BMI sesuai dengan faktor risiko / penyebab. Dari data ini menunjukkan bahwa jumlah overweight dan obese tertinggi terdapat pada \",@hasil) as bmi
from
(
SELECT COUNT(DISTINCT Mgm_HeaderT_OrderHeaderID) as a,
concat(Mcu_KelainanName , \" (\" , round(COUNT(DISTINCT Mgm_HeaderT_OrderHeaderID) / @totalPasien * 100 ,2) , \"%)\") AS total
FROM
one_etl.mgm_header
JOIN
one_etl.mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID
AND Mgm_HeaderIsActive = 'Y'
AND Mgm_HeaderNat_TestCode = 'STATUS GIZI'
AND Mgm_HeaderMgm_McuID = PID
AND Mgm_DetailIsActive = 'Y'
AND Mgm_DetailMcu_KelainanGroupID = 1
JOIN one_etl.mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
AND Mcu_KelainanIsActive = 'Y'
GROUP BY Mcu_KelainanName
union
SELECT COUNT(DISTINCT a.Mgm_HeaderT_OrderHeaderID) as a,
concat(\"Normal (\",round(COUNT(DISTINCT a.Mgm_HeaderT_OrderHeaderID) / @totalPasien * 100,2), \"%)\" ) AS total
FROM one_etl.mgm_header a
LEFT JOIN
(SELECT DISTINCT Mgm_HeaderT_OrderHeaderID
FROM one_etl.mgm_header
JOIN one_etl.mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID
JOIN one_etl.mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
WHERE Mgm_HeaderIsActive = 'Y'
AND Mgm_HeaderMgm_McuID = PID
AND Mgm_DetailIsActive = 'Y'
AND Mgm_DetailMcu_KelainanGroupID = 1
AND Mcu_KelainanIsActive = 'Y') b
ON a.Mgm_HeaderT_OrderHeaderID = b.Mgm_HeaderT_OrderHeaderID
WHERE a.Mgm_HeaderIsActive = 'Y'
AND a.Mgm_HeaderIsNormal = 'Y'
AND a.Mgm_HeaderMgm_McuID = PID
AND b.Mgm_HeaderT_OrderHeaderID IS NULL order by a desc limit 2 ) as xxx ;end;",
"drop procedure if exists sp_rpt_exe_riwayat_penyakit;",
" CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_rpt_exe_riwayat_penyakit`(IN `PID` int, IN `username` varchar(100))
begin
SELECT COUNT(*) into @xTotalAll
FROM one_etl.mcu_order
WHERE Mcu_OrderMgm_McuID = PID;
select
concat( \"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Riwayat penyakit ini menginformasikan riwayat medis atau sakit yang pernah dialami oleh peserta dan saat pemeriksaan ini sudah sembuh atau sudah tidak ada keluhan. Informasi riwayat penyakit ini diperoleh dari peserta ketika pemeriksaan anamnesa oleh dokter. Jenis riwayat penyakit dari peserta yang paling banyak adalah \"
,
group_concat(hasil separator \",\") ) as riwayatPenyakit
from
(
SELECT Mcu_RiwayatName,
count(*) as xTotalPerItem ,@xTotalAll as xTotalAll,
concat(Mcu_RiwayatName, \" sebanyak \", count(*) ,\" Pasien (\", round(count(*)/@xTotalAll * 100 ,2) ,\" %) \") as hasil
FROM
one_etl.mgm_header
JOIN
one_etl.mgm_riwayat
ON Mgm_HeaderID = Mgm_RiwayatMgm_HeaderID
AND Mgm_HeaderIsActive = 'Y'
AND Mgm_RiwayatIsActive = 'Y'
JOIN
one_etl.mcu_riwayat
ON Mgm_RiwayatMcu_RiwayatID = Mcu_RiwayatID
AND Mcu_RiwayatIsActive = 'Y'
WHERE
Mcu_RiwayatMcu_RiwayatGroupID = 4
AND Mgm_HeaderMgm_McuID = PID
GROUP BY Mcu_RiwayatID
ORDER BY xTotalPerItem DESC
LIMIT 0, 3 ) as riwayat
;
end;",
"drop procedure if exists sp_rpt_exe_sum_001;",
"CREATE DEFINER=`root`@`localhost` 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(
\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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;"
];
// $sql_delimiter_end = "delimiter ;";
// $qry_delimiter = $this->db->query($sql_delimiter);
// if (!$qry_delimiter) {
// $error = array(
// "message" => $this->db->error()["message"],
// );
// $this->sys_error_db($error);
// exit;
// }
foreach ($sql_data as $key => $sql) {
$qry = $this->db->query($sql);
// print_r($sql);
if (!$qry) {
$error = array(
"message" => $this->db->error()["message"],
);
$this->sys_error_db($error);
exit;
} else {
echo json_encode(array("status :" => "OK", "message :" => ''));
}
}
// $sql_delimiter_end = $this->db->query($sql_delimiter);
// if (!$sql_delimiter_end) {
// $error = array(
// "message" => $this->db->error()["message"],
// );
// $this->sys_error_db($error);
// exit;
// }
}
function UploadFn()
{
$sql_data = [
"DROP FUNCTION IF EXISTS fn_get_executive_alkohol;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_alkohol`(`PID` int) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
SELECT if(Mcu_RiwayatName like '%tidak%' , \"Tidak\" , \"Ya\") INTO RTN
FROM one_etl.mgm_header
JOIN one_etl.mgm_riwayat ON Mgm_HeaderID = Mgm_RiwayatMgm_HeaderID AND Mgm_RiwayatIsActive = 'Y'
JOIN one_etl.mcu_riwayatgroup ON Mgm_RiwayatMcu_RiwayatGroupID = Mcu_RiwayatGroupID AND Mcu_RiwayatGroupIsActive = 'Y'
JOIn one_etl.mcu_riwayat ON Mgm_RiwayatMcu_RiwayatID = Mcu_RiwayatID and Mcu_RiwayatIsActive = 'Y'
WHERE Mgm_HeaderType = 'R' and Mgm_HeaderIsActive = 'Y'
and Mcu_RiwayatGroupID =6
and Mgm_HeaderT_OrderHeaderID = PID
and Mcu_RiwayatSegmentName = 'Minum alkohol' limit 1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_olahraga;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_olahraga`(`PID` int) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
SELECT if(Mcu_RiwayatName like '%tidak%' , \"Tidak\" , \"Ya\") INTO RTN
FROM one_etl.mgm_header
JOIN one_etl.mgm_riwayat ON Mgm_HeaderID = Mgm_RiwayatMgm_HeaderID AND Mgm_RiwayatIsActive = 'Y'
JOIN one_etl.mcu_riwayatgroup ON Mgm_RiwayatMcu_RiwayatGroupID = Mcu_RiwayatGroupID AND Mcu_RiwayatGroupIsActive = 'Y'
JOIn one_etl.mcu_riwayat ON Mgm_RiwayatMcu_RiwayatID = Mcu_RiwayatID and Mcu_RiwayatIsActive = 'Y'
WHERE Mgm_HeaderType = 'R' and Mgm_HeaderIsActive = 'Y'
and Mcu_RiwayatGroupID =6
and Mgm_HeaderT_OrderHeaderID = PID
and Mcu_RiwayatSegmentName = 'Olahraga' limit 1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_merokok;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_merokok`(`PID` int) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
SELECT if(Mcu_RiwayatName like '%tidak%' , \"Tidak\" , \"Ya\") INTO RTN
FROM one_etl.mgm_header
JOIN one_etl.mgm_riwayat ON Mgm_HeaderID = Mgm_RiwayatMgm_HeaderID AND Mgm_RiwayatIsActive = 'Y'
JOIN one_etl.mcu_riwayatgroup ON Mgm_RiwayatMcu_RiwayatGroupID = Mcu_RiwayatGroupID AND Mcu_RiwayatGroupIsActive = 'Y'
JOIn one_etl.mcu_riwayat ON Mgm_RiwayatMcu_RiwayatID = Mcu_RiwayatID and Mcu_RiwayatIsActive = 'Y'
WHERE Mgm_HeaderType = 'R' and Mgm_HeaderIsActive = 'Y'
and Mcu_RiwayatGroupID =6
and Mgm_HeaderT_OrderHeaderID = PID
and Mcu_RiwayatSegmentName = 'merokok' limit 1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_bmi;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_bmi`(`PID` int) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
SELECT Mcu_KelainanName INTO RTN
FROM one_etl.mgm_header
left join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
left join one_etl.mcu_kelainan on Mgm_DetailMcu_KelainanID = Mcu_KelainanID
join one_etl.mcu_kelainangroup on Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
where Mgm_DetailMcu_KelainanGroupID = '1' and Mgm_HeaderT_OrderHeaderID = PID
LIMIT 1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_umur_hasil;",
"CREATE DEFINER=`root`@`localhost` 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
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;",
"DROP FUNCTION IF EXISTS fn_get_executive_umur;",
"CREATE DEFINER=`root`@`localhost` 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
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;",
"DROP FUNCTION IF EXISTS fn_get_executive_peserta_top3;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_peserta_top3`(`PID` int, `PKelainan` varchar(100), `PDepartement` varchar(100)) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
select hasil into RTN
from (
select
\"NaN\" as data,Mcu_Top3KelainanMcu_KelainangroupName,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as depar,
sum( ifnull(Mgm_HeaderID, \"1\" )) as hasil
from one_etl.mcu_top3_kelainan
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mcu_Top3KelainanMgm_McuID and Mcu_Top3KelainanMgm_McuID = PID and Mcu_Top3KelainanIsActive = 'Y'
left join one_etl.mgm_header on Mgm_HeaderT_OrderHeaderID = Mcu_OrderT_OrderHeaderID
join t_orderheader on Mcu_OrderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
where Mgm_HeaderID is null
group by Mcu_Top3KelainanMcu_KelainangroupName,depar) as x where depar like CONCAT('%',PKelainan,'%') and Mcu_Top3KelainanMcu_KelainangroupName like CONCAT('%',PDepartement,'%')
limit 1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_top3;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_top3`(`PID` int, `PKelainan` varchar(100), `PDepartement` varchar(100)) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
select hasil INTO RTN
from
(
SELECT
Mcu_Top3KelainanMcu_KelainangroupName ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as departemen ,
count( distinct Mgm_HeaderT_OrderHeaderID ) as hasil
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
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
group by Mcu_Top3KelainanMcu_KelainanGroupID,departemen
union
SELECT
Mcu_Top3KelainanMcu_KelainangroupName ,
if(M_PatientKedudukan = '' or M_PatientKedudukan is null ,'Departement', M_PatientKedudukan) as departemen ,
count( distinct Mgm_HeaderT_OrderHeaderID ) as hasil
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 Mcu_Top3KelainanMcuKelainanID = Mgm_DetailMcu_KelainanID and Mgm_HeaderMgm_McuID = Mcu_Top3KelainanMgm_McuID and Mcu_Top3KelainanIsActive = 'Y'
join t_orderheader on Mgm_HeaderT_OrderHeaderID = T_OrderHeaderID and T_OrderHeaderIsActive = 'Y'
join m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
group by Mcu_Top3KelainanMcuKelainanID ,departemen ) as a
where departemen like CONCAT('%',PKelainan,'%') and Mcu_Top3KelainanMcu_KelainangroupName like CONCAT('%',PDepartement,'%')
limit 1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_refraksi;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_refraksi`(`PID` int) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
SELECT Mgm_DetailMcu_KelainanGroupID INTO RTN
FROM one_etl.mgm_header
join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
WHERE
`Mgm_HeaderIsActive` = 'Y'
AND `Mgm_HeaderType` = 'F'
and `Mgm_DetailMcu_KelainanGroupID` = '3'
and Mgm_HeaderT_OrderHeaderID = PID
group by Mgm_HeaderT_OrderHeaderID limit 1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_lemak_new;",
"CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_lemak_new`(`PID` int) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
SELECT Mgm_DetailMcu_KelainanGroupID INTO RTN
FROM one_etl.mgm_header
join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
WHERE
`Mgm_HeaderIsActive` = 'Y'
AND `Mgm_HeaderType` = 'L'
and `Mgm_DetailMcu_KelainanGroupID` = '17'
and Mgm_HeaderIsNormal = 'N'
and Mgm_HeaderT_OrderHeaderID = PID
group by Mgm_HeaderT_OrderHeaderID limit 0,1
;
return RTN;
END;",
"DROP FUNCTION IF EXISTS fn_get_executive_hipertensi;",
" CREATE DEFINER=`root`@`localhost` FUNCTION `fn_get_executive_hipertensi`(`PID` int) RETURNS varchar(100) CHARSET utf8mb4
READS SQL DATA
BEGIN
DECLARE RTN VARCHAR(100);
SELECT Mgm_DetailMcu_KelainanGroupID INTO RTN
FROM one_etl.mgm_header
join one_etl.mgm_detail on Mgm_DetailMgm_HeaderID = Mgm_HeaderID and Mgm_DetailIsActive = 'Y'
WHERE `Mgm_HeaderIsActive` = 'Y'
AND `Mgm_HeaderType` = 'F'
and `Mgm_DetailMcu_KelainanGroupID` = '2'
and Mgm_HeaderT_OrderHeaderID = PID
group by Mgm_HeaderT_OrderHeaderID limit 1
;
return RTN;
END;"
];
foreach ($sql_data as $key => $sql) {
$qry = $this->db->query($sql);
// print_r($sql);
if (!$qry) {
$error = array(
"message" => $this->db->error()["message"],
);
$this->sys_error_db($error);
exit;
} else {
echo json_encode(array("status :" => "OK", "message :" => ''));
}
}
}
}