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

View File

@@ -103,7 +103,6 @@ class DashboardService
CASE
WHEN LOWER(case_lab_results.pathogen_name) LIKE '%influenza%'
OR LOWER(case_lab_results.pathogen_name) LIKE '%influzena%'
THEN 'Influenza'
ELSE case_lab_results.pathogen_name
END as pathogen,
@@ -127,7 +126,6 @@ class DashboardService
'pathogen',
'test_type'
)
//->havingRaw("pathogen IS NOT NULL AND pathogen != ''")
->orderBy('surveillance_cases.year_data')
->orderBy('surveillance_cases.week_data')
@@ -144,7 +142,7 @@ class DashboardService
public function programSummaryFast($surveillanceId, $year = null, $week = null, $dateFrom = null, $dateTo = null)
{
$query = SurveillanceCase::leftJoin(
'case_lab_results',
'case_lab_results',
'surveillance_cases.lab_code',
'=',
'case_lab_results.lab_code'
@@ -170,7 +168,6 @@ class DashboardService
WHEN case_lab_results.is_positive = 1
AND (
LOWER(case_lab_results.pathogen_name) LIKE '%influenza%'
OR LOWER(case_lab_results.pathogen_name) LIKE '%influzena%'
)
THEN surveillance_cases.lab_code
END) as influenza_positive,
@@ -179,7 +176,6 @@ class DashboardService
WHEN case_lab_results.is_positive = 1
AND (
LOWER(case_lab_results.pathogen_name) LIKE '%covid%'
OR LOWER(case_lab_results.pathogen_name) LIKE '%sars%'
)
THEN surveillance_cases.lab_code
END) as covid_positive
@@ -477,7 +473,7 @@ class DashboardService
ROUND(
COUNT(DISTINCT CASE
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
END)
/ NULLIF(COUNT(DISTINCT surveillance_cases.lab_code), 0) * 100
@@ -582,7 +578,7 @@ class DashboardService
COUNT(DISTINCT CASE
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
END) as ev,
@@ -614,7 +610,7 @@ class DashboardService
->where(function ($q) use ($startYear, $startWeek, $endYear, $endWeek) {
$q->whereRaw(
"(surveillance_cases.year_data * 100 + surveillance_cases.week_data) BETWEEN ? AND ?",
[
[
$startYear * 100 + $startWeek,
$endYear * 100 + $endWeek
]
@@ -632,39 +628,6 @@ class DashboardService
)
->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 */