This commit is contained in:
2026-04-29 09:53:56 +07:00
parent 7997c7aec7
commit a5bdcb6008
7 changed files with 124864 additions and 250780 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

125828
dashboard.sql

File diff suppressed because it is too large Load Diff

View File

@@ -103,7 +103,6 @@ class DashboardService
CASE CASE
WHEN LOWER(case_lab_results.pathogen_name) LIKE '%influenza%' WHEN LOWER(case_lab_results.pathogen_name) LIKE '%influenza%'
OR LOWER(case_lab_results.pathogen_name) LIKE '%influzena%'
THEN 'Influenza' THEN 'Influenza'
ELSE case_lab_results.pathogen_name ELSE case_lab_results.pathogen_name
END as pathogen, END as pathogen,
@@ -127,7 +126,6 @@ class DashboardService
'pathogen', 'pathogen',
'test_type' 'test_type'
) )
//->havingRaw("pathogen IS NOT NULL AND pathogen != ''")
->orderBy('surveillance_cases.year_data') ->orderBy('surveillance_cases.year_data')
->orderBy('surveillance_cases.week_data') ->orderBy('surveillance_cases.week_data')
@@ -170,7 +168,6 @@ class DashboardService
WHEN case_lab_results.is_positive = 1 WHEN case_lab_results.is_positive = 1
AND ( AND (
LOWER(case_lab_results.pathogen_name) LIKE '%influenza%' LOWER(case_lab_results.pathogen_name) LIKE '%influenza%'
OR LOWER(case_lab_results.pathogen_name) LIKE '%influzena%'
) )
THEN surveillance_cases.lab_code THEN surveillance_cases.lab_code
END) as influenza_positive, END) as influenza_positive,
@@ -179,7 +176,6 @@ class DashboardService
WHEN case_lab_results.is_positive = 1 WHEN case_lab_results.is_positive = 1
AND ( AND (
LOWER(case_lab_results.pathogen_name) LIKE '%covid%' LOWER(case_lab_results.pathogen_name) LIKE '%covid%'
OR LOWER(case_lab_results.pathogen_name) LIKE '%sars%'
) )
THEN surveillance_cases.lab_code THEN surveillance_cases.lab_code
END) as covid_positive END) as covid_positive
@@ -477,7 +473,7 @@ class DashboardService
ROUND( ROUND(
COUNT(DISTINCT CASE COUNT(DISTINCT CASE
WHEN case_lab_results.is_positive = 1 WHEN case_lab_results.is_positive = 1
AND LOWER(case_lab_results.pathogen_name) LIKE '%enterovirus%' AND LOWER(case_lab_results.pathogen_name) LIKE '%ev%'
THEN surveillance_cases.lab_code THEN surveillance_cases.lab_code
END) END)
/ NULLIF(COUNT(DISTINCT surveillance_cases.lab_code), 0) * 100 / NULLIF(COUNT(DISTINCT surveillance_cases.lab_code), 0) * 100
@@ -582,7 +578,7 @@ class DashboardService
COUNT(DISTINCT CASE COUNT(DISTINCT CASE
WHEN case_lab_results.is_positive = 1 WHEN case_lab_results.is_positive = 1
AND LOWER(case_lab_results.pathogen_name) LIKE '%enterovirus%' AND LOWER(case_lab_results.pathogen_name) LIKE '%ev%'
THEN surveillance_cases.lab_code THEN surveillance_cases.lab_code
END) as ev, END) as ev,
@@ -632,39 +628,6 @@ class DashboardService
) )
->get(); ->get();
return SurveillanceCase::leftJoin(
'case_lab_results',
'surveillance_cases.lab_code',
'=',
'case_lab_results.lab_code'
)
->where(function ($q) use ($startYear, $startWeek, $endYear, $endWeek) {
$q->whereRaw(
"(surveillance_cases.year_data > ? OR (surveillance_cases.year_data = ? AND surveillance_cases.week_data >= ?))",
[$startYear, $startYear, $startWeek]
)
->whereRaw(
"(surveillance_cases.year_data < ? OR (surveillance_cases.year_data = ? AND surveillance_cases.week_data <= ?))",
[$endYear, $endYear, $endWeek]
)
->whereRaw('case_lab_results.is_positive = 1 and surveillance_cases.surveillance_id not in(6)');
})
->selectRaw("
surveillance_cases.patient_province,
case_lab_results.pathogen_name,
COUNT(DISTINCT surveillance_cases.lab_code) as total
")
->groupBy(
'surveillance_cases.patient_province',
'case_lab_results.pathogen_name'
)
->get();
} }
/* Start Overview Section */ /* Start Overview Section */

View File

@@ -1004,7 +1004,7 @@ function loadProvinceMap(startYear, startWeek, endYear, endWeek) {
// 👉 group by pathogen_name // 👉 group by pathogen_name
const pathogens = [...new Set(rows.map(r => r.pathogen_name))]; const pathogens = [...new Set(rows.map(r => r.pathogen_name))];
const spacing = 1; //0.12; // adjust spacing between circles const spacing = 0.15; //0.12; // adjust spacing between circles
rows.forEach(row => { rows.forEach(row => {

File diff suppressed because it is too large Load Diff

Binary file not shown.