2126 lines
87 KiB
PHP
2126 lines
87 KiB
PHP
<?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
|
||
\" 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(\" 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(
|
||
\" 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.
|
||
</br> 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 '</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(
|
||
\" 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> 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 \") ,\"
|
||
</br> 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.
|
||
</br> Produk dan konten disediakan atas dasar sebagaimana adanya Pramita tidak menjamin
|
||
bahwa produk dan/atau konten apa pun di dalamnya bebas kesalahan, akurat, dapat
|
||
diandalkan dan akan dapat memenuhi kebutuhan Anda. Konten pada laporan ini tidak
|
||
dimaksudkan untuk menyajikan satu-satunya metode atau prosedur terbaik untuk situasi medis
|
||
yang ditangani. Referensi apa pun ke terapi atau produk komersial atau layanan tertentu dalam
|
||
laporan hasil pemeriksaan kesehatan ini bukan merupakan jaminan atau dukungan oleh
|
||
Pramita atas kualitas atau nilai terapi atau produk atau layanan tersebut atau klaim apa pun
|
||
yang dibuat oleh produsen atau penyedia terapi atau layanan tersebut.\" )as disclaimer,
|
||
|
||
concat(\" Dalam upaya meningkatkan derajat kesehatan masyarakat khususnya tenaga kerja, maka
|
||
pemerintah melakukan upaya peningkatan, pencegahan, penyembuhan dan upaya pemulihan
|
||
(rehabilitasi dalam berbagai bentuk informasi dan pelayanan). Hal tersebut tertuang dalam
|
||
Undang – Undang nomor 1 tahun 1970 dan Peraturan – peraturan lainnya yang mendukung
|
||
tentang keselamatan dan kesehatan kerja.
|
||
</br> Pemeriksaan kesehatan berkala (general medical check up) bertujuan untuk mengetahui status
|
||
kesehatan pekerja dan mendeteksi secara dini adanya penyakit akibat kerja, penyakit
|
||
degenerative maupun penyakit lainnya agar dapat ditangani secara dini. Penyakit akibat kerja
|
||
dapat timbul karena terpaparnya pekerja oleh agen dalam lingkungan pekerjaan ataupun
|
||
kebiasaan kerja yang kurang benar. Sedangkan penyakit degenerative seperti penyakit jantung,
|
||
hipertensi dan diabetes mellitus dapat timbul karena proses alamiah akibat proses penuaan,
|
||
gaya hidup, pola makan yang kurang berimbang, kurangnya aktifitas fisik dan olah raga.
|
||
</br> Sumber daya manusia adalah aset perusahaan yang sangat penting, karena itu \",M_CompanyName ,\"
|
||
melaksanakan pemeriksaan kesehatan berkala secara rutin untuk mempertahankan
|
||
produktifitas dan memenuhi ketentuan undang-undang. Diketahui bahwa interaksi tenaga kerja
|
||
dengan berbagai faktor bahaya dan risiko di tempat kerja adalah suatu hal yang tidak dapat
|
||
dihindari, maka perusahaan berupaya agar tercapai kondisi yang aman, efektif dan efisien.
|
||
</br> Salah satu kegiatan untuk mempertahankan derajat kesehatan karyawan adalah dengan
|
||
melaksanakan pemeriksaan kesehatan berkala yang dilaksanakan bekerja sama dengan
|
||
Laboratorium Klinik PRAMITA.\")
|
||
as LatarBelakang,
|
||
\"2.1. Mengetahui status kesehatan pegawai
|
||
</br>2.2. Mendeteksi secara dini adanya penyakit akibat kerja
|
||
</br>2.3. Mengetahui adanya penyakit degeneratif (seperti penyakit jantung, hipertensi dan diabetesmellitus)
|
||
</br>2.4. Mengetahui adanya penyakit - penyakit lainnya yang dapat timbul selama karyawan tersebut bekerja, sehingga dapat ditangani secara dini\" as TujuanKegiatan,
|
||
|
||
concat(\"</br> Bila peserta dibagi menurut kelompok umur < 30 tahun, 30 - < 40 tahun, 40 - < 50 tahun dan
|
||
lebih dari 50 tahun, maka kelompok umur yang terbanyak pada kegiatan pemeriksaan
|
||
kesehatan berkala tahun \",year(Mgm_McuStartDate),\" ini adalah kelompok umur \", @umur ,\" komposisi menurut
|
||
kelompok umur selengkapnya dapat dilihat pada tabel 2.3 sebagai berikut:
|
||
\" )as Komposisi,
|
||
concat(\"</br> Pemeriksaan kesehatan berkala ini merupakan salah satu bentuk implementasi System
|
||
Managemen Kesehatan dan Keselamatan Kerja (SMK3) di \",M_CompanyName ,\", yang bertujuan untuk deteksi dini adanya penyakit termasuk
|
||
penyakit akibat kerja (PAK), guna mencegah timbulnya kelainan yang lebih berat. Disamping
|
||
itu, Pemeriksaan ini pada akhirnya juga bertujuan untuk meningkatkan produktifitas pegawai
|
||
dan perusahaan. Pemeriksaan kesehatan yang dilakukan meliputi pemeriksaan Anamnesa, \",
|
||
@Test,\" . Jenis
|
||
pemeriksaan pada masing-masing pegawai ditentukan berdasarkan risiko penyakit menurut
|
||
kelompok umur, jenis kelamin dan jenis pekerjaan, dan telah ditetapkan oleh \",M_CompanyName ,\"
|
||
berdasarkan analisa dan evaluasi pelaksanaan K3. Jenis pemeriksaan selengkapnya dapat
|
||
dilihat pada table berikut :\") as JenisPemeriksaan
|
||
|
||
from one_etl.mgm_mcu
|
||
join m_company on Mgm_McuM_CompanyID = M_CompanyID
|
||
join one_etl.mcu_order on Mcu_OrderMgm_McuID = Mgm_McuID
|
||
|
||
where Mgm_McuID = PID;
|
||
end;"
|
||
];
|
||
|
||
// $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 :" => ''));
|
||
}
|
||
}
|
||
}
|
||
}
|