Add kelainan summary

This commit is contained in:
sas.fajri
2026-04-24 10:56:09 +07:00
parent 1ed1eefa9b
commit 92bd44c1eb

View File

@@ -370,11 +370,135 @@ class Resume extends MY_Controller
}
}
}
$sql = "SELECT Mcu_FitnessCategoryID as id,
Mcu_FitnessCategoryName as name,
Mcu_FitnessCategoryEng as nameEng,
Mcu_FitnessCategoryLevel as level
$sql = "SELECT
MIN(kelainans.id) AS id,
kelainans.type,
IFNULL(GROUP_CONCAT(DISTINCT NULLIF(kelainans.Nat_TestName, '') ORDER BY kelainans.Nat_TestName SEPARATOR ', '), '') AS Nat_TestName,
kelainans.Mcu_KelainanName,
kelainans.Mcu_KelainanClasification,
kelainans.Mcu_KelainanGroupName,
IFNULL(SUBSTRING_INDEX(
GROUP_CONCAT(
IFNULL(kelainans.Mcu_FitnessCategoryName, '')
ORDER BY IFNULL(kelainans.Mcu_FitnessCategoryLevel, -1) DESC
SEPARATOR '||'
),
'||',
1
), '') AS Mcu_FitnessCategoryName
FROM (
SELECT
kl.T_KelainanLabID AS id,
mk.Mcu_KelainanID,
'lab' AS type,
IFNULL(nt.Nat_TestName, '') AS Nat_TestName,
mk.Mcu_KelainanName,
mk.Mcu_KelainanClasification,
mkg.Mcu_KelainanGroupName,
mfc.Mcu_FitnessCategoryName,
mfc.Mcu_FitnessCategoryLevel
FROM t_kelainan_lab kl
JOIN mcu_summarylab ms
ON kl.T_KelainanLabMcu_SummaryLabID = ms.Mcu_SummaryLabID
AND ms.Mcu_SummaryLabIsActive = 'Y'
JOIN mcu_kelainan mk
ON ms.Mcu_SummaryLabMcu_KelainanID = mk.Mcu_KelainanID
AND mk.Mcu_KelainanIsActive = 'Y'
JOIN mcu_kelainangroup mkg
ON mk.Mcu_KelainanMcu_KelainanGroupID = mkg.Mcu_KelainanGroupID
AND mkg.Mcu_KelainanGroupIsActive = 'Y'
LEFT JOIN mcu_fitness_category mfc
ON ms.Mcu_SummaryLabMcu_FitnessCategoryID = mfc.Mcu_FitnessCategoryID
AND mfc.Mcu_FitnessCategoryIsActive = 'Y'
LEFT JOIN nat_test nt
ON kl.T_KelainanLabNat_TestID = nt.Nat_TestID
AND nt.Nat_TestIsActive = 'Y'
WHERE
kl.T_KelainanLabT_OrderHeaderID = ? AND
kl.T_KelainanLabIsActive = 'Y'
UNION ALL
SELECT
kn.T_KelainanNonLabID AS id,
mk.Mcu_KelainanID,
'fisik' AS type,
IFNULL(nt.Nat_TestName, '') AS Nat_TestName,
mk.Mcu_KelainanName,
mk.Mcu_KelainanClasification,
mkg.Mcu_KelainanGroupName,
mfc.Mcu_FitnessCategoryName,
mfc.Mcu_FitnessCategoryLevel
FROM t_kelainan_nonlab kn
JOIN mcu_summarynonlab msn
ON kn.T_KelainanNonLabMcu_SummaryNonlabID = msn.Mcu_SummaryNonlabID
AND msn.Mcu_SummaryNonlabIsActive = 'Y'
JOIN mcu_kelainan mk
ON msn.Mcu_SummaryNonlabMcu_KelainanID = mk.Mcu_KelainanID
AND mk.Mcu_KelainanIsActive = 'Y'
JOIN mcu_kelainangroup mkg
ON mk.Mcu_KelainanMcu_KelainanGroupID = mkg.Mcu_KelainanGroupID
AND mkg.Mcu_KelainanGroupIsActive = 'Y'
LEFT JOIN mcu_fitness_category mfc
ON msn.Mcu_SummaryNonlabMcu_FitnessCategoryID = mfc.Mcu_FitnessCategoryID
AND mfc.Mcu_FitnessCategoryIsActive = 'Y'
LEFT JOIN nat_test nt
ON kn.T_KelainanNonLabNat_TestID = nt.Nat_TestID
AND nt.Nat_TestIsActive = 'Y'
WHERE
kn.T_KelainanNonLabT_OrderHeaderID = ? AND
kn.T_KelainanNonLabIsActive = 'Y'
UNION ALL
SELECT
kf.T_KelainanFiskID AS id,
mk.Mcu_KelainanID,
'fisik' AS type,
'' AS Nat_TestName,
mk.Mcu_KelainanName,
mk.Mcu_KelainanClasification,
mkg.Mcu_KelainanGroupName,
mfc.Mcu_FitnessCategoryName,
mfc.Mcu_FitnessCategoryLevel
FROM t_kelainan_fisik kf
JOIN mcu_fisiksummary mf
ON kf.T_KelainanFiskMcu_FisikSummaryID = mf.Mcu_FisikSummaryID
AND mf.Mcu_FisikSummaryIsActive = 'Y'
JOIN mcu_kelainan mk
ON mf.Mcu_FisikSummaryMcu_KelainanID = mk.Mcu_KelainanID
AND mk.Mcu_KelainanIsActive = 'Y'
JOIN mcu_kelainangroup mkg
ON mk.Mcu_KelainanMcu_KelainanGroupID = mkg.Mcu_KelainanGroupID
AND mkg.Mcu_KelainanGroupIsActive = 'Y'
LEFT JOIN mcu_fitness_category mfc
ON mf.Mcu_FisikSummaryMcu_FitnessCategoryID = mfc.Mcu_FitnessCategoryID
AND mfc.Mcu_FitnessCategoryIsActive = 'Y'
WHERE
kf.T_KelainanFiskT_OrderHeaderID = ? AND
kf.T_KelainanFiskIsActive = 'Y'
) kelainans
GROUP BY
kelainans.type,
kelainans.Mcu_KelainanID,
kelainans.Mcu_KelainanName,
kelainans.Mcu_KelainanClasification,
kelainans.Mcu_KelainanGroupName
ORDER BY kelainans.type, Nat_TestName, kelainans.Mcu_KelainanName";
$query = $this->db_onedev->query($sql, [$orderid, $orderid, $orderid]);
if (!$query) {
$message = $this->db_onedev->error();
$message['qry'] = $this->db_onedev->last_query();
$this->sys_error($message);
exit;
}
$dataKelainans = $query->result_array();
$sql = "SELECT Mcu_FitnessCategoryID as id,
Mcu_FitnessCategoryName as name,
Mcu_FitnessCategoryEng as nameEng,
Mcu_FitnessCategoryLevel as level
FROM mcu_fitness_category
WHERE Mcu_FitnessCategoryIsActive = 'Y'";
$query = $this->db_onedev->query($sql);
@@ -388,13 +512,14 @@ class Resume extends MY_Controller
$result = [
"header" => $dataHeader,
"records" => $data,
"results" => $dataResults,
"fitnessCategory" => $dataFitnessCategory
// 'kesimpulan' => $kesimpulanFisik
];
$result = [
"header" => $dataHeader,
"records" => $data,
"results" => $dataResults,
"kelainans" => $dataKelainans,
"fitnessCategory" => $dataFitnessCategory
// 'kesimpulan' => $kesimpulanFisik
];
$this->sys_ok($result);
}