Добавил приоритет ввода метрик врача дежурного

This commit is contained in:
brusnitsyn
2026-07-13 15:28:37 +09:00
parent c3ad3ca9fd
commit d194ea3030
2 changed files with 20 additions and 5 deletions

View File

@@ -329,6 +329,12 @@ class DutyReportController extends Controller
$unwantedEvents = $request->get('unwanted_events', []);
$selectedUserId = $request->get('userId') ? (int) $request->get('userId') : null;
$selectedDepartmentId = $request->get('departmentId') ? (int) $request->get('departmentId') : null;
// Приоритет над метриками (поступило, выбыло, состоит и мед. персонал)
$statRecipient = $request->get('recipient') ? (int) $request->get('recipient') : null;
$statDischarged = $request->get('discharged') ? (int) $request->get('discharged') : null;
$statCurrent = $request->get('current') ? (int) $request->get('current') : null;
$staff = (int) $request->get('staff', 0);
$dateRange = $this->dateRangeService->getDateRangeFromRequest($request, $user, extendRangeEnd: false);
@@ -337,7 +343,13 @@ class DutyReportController extends Controller
$this->dutyReportService->saveObservables($observables, $report);
$this->dutyReportService->saveUnwantedEvents($unwantedEvents, $report);
$this->dutyReportService->saveMetrics($stats, $report, $staff);
$statsOverride = [
'recipient' => $statRecipient,
'outcome' => $statDischarged,
'in_department' => $statCurrent
];
$this->dutyReportService->saveMetrics($stats, $report, $staff, $statsOverride);
return redirect()->back();
}

View File

@@ -921,16 +921,19 @@ class DutyReportService
];
}
public function saveMetrics(array $stats, ReportDuty $reportDuty, int $staff = 0)
public function saveMetrics(array $stats, ReportDuty $reportDuty, int $staff = 0, array $statsOverride = [])
{
$byStatus = $stats['by_status'] ?? [];
$byUrgency = $stats['by_urgency'] ?? [];
$admitted = $stats['admitted'] ?? [];
// === Базовые счётчики ===
$patientsIsRecipient = $byStatus['recipient'] ?? 0;
$patientsInDepartment = $byStatus['in_department'] ?? 0;
$patientsIsDischarged = $stats['outcome'] ?? 0;
$patientsIsRecipient = array_key_exists('recipient', $statsOverride)
? $statsOverride['recipient'] : $byStatus['recipient'] ?? 0;
$patientsInDepartment = array_key_exists('in_department', $statsOverride)
? $statsOverride['in_department'] : $byStatus['in_department'] ?? 0;
$patientsIsDischarged = array_key_exists('outcome', $statsOverride)
? $statsOverride['outcome'] : $byStatus['outcome'] ?? 0;
$patientsIsTransferred = $stats['transferred'] ?? 0;
$patientsIsDeceased = $byStatus['deceased'] ?? 0;