= '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( \"           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 \"           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(\"           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( \"           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 \"           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(\"           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( \"            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.
           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( \"           Dari table tersebut tampak bahwa rata-rata tinggi badan peserta adalah \",AntropometriTB,\" cm, berat badan \",AntropometriBB,\" kg, lingkar perut \",AntropometriLP, \" cm dan BMI \",AntropometriBMI,\" .            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( \"           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(\"           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(\"           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( \"           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 '
') 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( \"           Status fitness pada hasil pemeriksaan kesehatan berkala pada setiap peserta dibuat berdasarkan Standart Medical Check Up Karyawan\",\" . Status fitness ini terdiri dari
\",@fitnes ) as Fitness1, concat(\"
           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(\"           Data diatas menunjukkan bahwa sebaran BMI terbanyak adalah \", group_concat(total separator \" dan \") ,\"
           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( \"           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( \"           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.
           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.
           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.
           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.
           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
2.2. Mendeteksi secara dini adanya penyakit akibat kerja
2.3. Mengetahui adanya penyakit degeneratif (seperti penyakit jantung, hipertensi dan diabetesmellitus)
2.4. Mengetahui adanya penyakit - penyakit lainnya yang dapat timbul selama karyawan tersebut bekerja, sehingga dapat ditangani secara dini\" as TujuanKegiatan, concat(\"
           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(\"
           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 :" => '')); } } } }