Несколько отделений для врачей

Поправил подсчет операций
Закончил функцию наполнения отчетов
This commit is contained in:
brusnitsyn
2026-02-06 15:15:03 +09:00
parent 10fb138c30
commit 741781dcb3
9 changed files with 117 additions and 50 deletions

View File

@@ -59,21 +59,23 @@ class StatisticController extends Controller
if ($isRangeOneDay) {
// Статистика выводится с нарастающим числом
$reports = $department->reports()
->whereDate('created_at', $dateReport)
$query = $department->reports();
$reports = $query->whereDate('created_at', $dateReport)
->get();
$lastReport = $query->whereDate('created_at', $dateReport)->first();
} else {
$reports = $department->reports()
->whereBetween('created_at', $dateReport)->get();
$query = $department->reports();
$reports = $query->clone()->whereBetween('created_at', $dateReport)
->get();
$lastReport = $query->clone()->whereDate('created_at', $dateReport[1])->first();
}
// Метрики зависищие от отчетов
$allCount = 0; $outcomeCount = 0; $currentCount = 0; $occupiedBeds = 0; $planCount = 0;
$allCount = 0; $outcomeCount = 0; $currentCount = 0; $planCount = 0;
$emergencyCount = 0; $planSurgical = 0; $emergencySurgical = 0; $transferredCount = 0;
$deceasedCount = 0;
$currentCount = $lastReport ? $this->getMetrikaResultFromReport($lastReport, 8, false) : 0; // Состоит
foreach ($reports as $report) {
$allCount += $this->getMetrikaResultFromReport($report, 3, $isRangeOneDay); // Поступило
$currentCount += $this->getMetrikaResultFromReport($report, 8, false); // Состоит
$occupiedBeds += $this->getMetrikaResultFromReport($report, 8, $isRangeOneDay); // Состоит
$planCount += $this->getMetrikaResultFromReport($report, 4, $isRangeOneDay); // Поступление - Планово
$emergencyCount += $this->getMetrikaResultFromReport($report, 12, $isRangeOneDay); // Поступление - Экстренно
$planSurgical += $this->getMetrikaResultFromReport($report, 11, $isRangeOneDay); // Операции - Планово
@@ -83,11 +85,13 @@ class StatisticController extends Controller
$deceasedCount += $this->getMetrikaResultFromReport($report, 9, $isRangeOneDay); // Умерло
}
$allCount = $planCount + $emergencyCount; // Поступило
// Независимые метрики (установки по умолчанию и т.п.)
$bedsCount = $department->metrikaDefault()
->where('rf_metrika_item_id', 1)->value('value');
$percentLoadedBeds = $bedsCount > 0 ? round($occupiedBeds * 100 / $bedsCount) : 0;
$percentLoadedBeds = $bedsCount > 0 ? round($currentCount * 100 / $bedsCount) : 0;
$groupedData[$departmentType][] = [
'department' => $department->name_short,