fix bugs
This commit is contained in:
@@ -28,9 +28,6 @@ class DashboardService
|
||||
|
||||
public function summaryCards()
|
||||
{
|
||||
$programs = Surveillance::orderBy('id')->get();
|
||||
$results = [];
|
||||
|
||||
$today = date('Y-m-d');
|
||||
|
||||
$currentFrom = date('Y-m-d', strtotime('-6 days'));
|
||||
@@ -39,15 +36,23 @@ class DashboardService
|
||||
$prevFrom = date('Y-m-d', strtotime('-13 days'));
|
||||
$prevTo = date('Y-m-d', strtotime('-7 days'));
|
||||
|
||||
$results = [];
|
||||
|
||||
$programs = Surveillance::where('id', '!=', 6)
|
||||
->orderBy('id')
|
||||
->get();
|
||||
|
||||
foreach ($programs as $program) {
|
||||
|
||||
$current = SurveillanceCase::where('surveillance_id', $program->id)
|
||||
->whereBetween('case_date', [$currentFrom, $currentTo])
|
||||
->count();
|
||||
->distinct('lab_code')
|
||||
->count('lab_code');
|
||||
|
||||
$previous = SurveillanceCase::where('surveillance_id', $program->id)
|
||||
->whereBetween('case_date', [$prevFrom, $prevTo])
|
||||
->count();
|
||||
->distinct('lab_code')
|
||||
->count('lab_code');
|
||||
|
||||
$percentChange = $previous > 0
|
||||
? round((($current - $previous) / $previous) * 100, 1)
|
||||
@@ -62,6 +67,44 @@ class DashboardService
|
||||
];
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| A/H5N1 Summary Card
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
$h5n1Current = SurveillanceCase::join('case_lab_results', function ($join) {
|
||||
$join->on('surveillance_cases.lab_code', '=', 'case_lab_results.lab_code')
|
||||
->on('surveillance_cases.surveillance_id', '=', 'case_lab_results.surveillance_id');
|
||||
})
|
||||
->whereBetween('surveillance_cases.case_date', [$currentFrom, $currentTo])
|
||||
->where('case_lab_results.subtype', 'A/H5N1')
|
||||
->where('surveillance_cases.surveillance_id', '!=', 6)
|
||||
->distinct('surveillance_cases.lab_code')
|
||||
->count('surveillance_cases.lab_code');
|
||||
|
||||
$h5n1Previous = SurveillanceCase::join('case_lab_results', function ($join) {
|
||||
$join->on('surveillance_cases.lab_code', '=', 'case_lab_results.lab_code')
|
||||
->on('surveillance_cases.surveillance_id', '=', 'case_lab_results.surveillance_id');
|
||||
})
|
||||
->whereBetween('surveillance_cases.case_date', [$prevFrom, $prevTo])
|
||||
->where('case_lab_results.subtype', 'A/H5N1')
|
||||
->where('surveillance_cases.surveillance_id', '!=', 6)
|
||||
->distinct('surveillance_cases.lab_code')
|
||||
->count('surveillance_cases.lab_code');
|
||||
|
||||
$h5n1Percent = $h5n1Previous > 0
|
||||
? round((($h5n1Current - $h5n1Previous) / $h5n1Previous) * 100, 1)
|
||||
: ($h5n1Current > 0 ? 100 : 0);
|
||||
|
||||
$results[] = [
|
||||
'surveillance_id' => null,
|
||||
'code' => 'H5N1',
|
||||
'current_total' => $h5n1Current,
|
||||
'previous_total' => $h5n1Previous,
|
||||
'percent_change' => $h5n1Percent
|
||||
];
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
@@ -101,8 +144,8 @@ class DashboardService
|
||||
AND week_data >= ?
|
||||
)
|
||||
)",
|
||||
[$startYear, $startYear, $startWeek]
|
||||
)
|
||||
[$startYear, $startYear, $startWeek]
|
||||
)
|
||||
|
||||
->whereRaw(
|
||||
"(year_data < ?
|
||||
|
||||
Reference in New Issue
Block a user