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

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', []); $unwantedEvents = $request->get('unwanted_events', []);
$selectedUserId = $request->get('userId') ? (int) $request->get('userId') : null; $selectedUserId = $request->get('userId') ? (int) $request->get('userId') : null;
$selectedDepartmentId = $request->get('departmentId') ? (int) $request->get('departmentId') : 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); $staff = (int) $request->get('staff', 0);
$dateRange = $this->dateRangeService->getDateRangeFromRequest($request, $user, extendRangeEnd: false); $dateRange = $this->dateRangeService->getDateRangeFromRequest($request, $user, extendRangeEnd: false);
@@ -337,7 +343,13 @@ class DutyReportController extends Controller
$this->dutyReportService->saveObservables($observables, $report); $this->dutyReportService->saveObservables($observables, $report);
$this->dutyReportService->saveUnwantedEvents($unwantedEvents, $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(); 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'] ?? []; $byStatus = $stats['by_status'] ?? [];
$byUrgency = $stats['by_urgency'] ?? []; $byUrgency = $stats['by_urgency'] ?? [];
$admitted = $stats['admitted'] ?? []; $admitted = $stats['admitted'] ?? [];
// === Базовые счётчики === // === Базовые счётчики ===
$patientsIsRecipient = $byStatus['recipient'] ?? 0; $patientsIsRecipient = array_key_exists('recipient', $statsOverride)
$patientsInDepartment = $byStatus['in_department'] ?? 0; ? $statsOverride['recipient'] : $byStatus['recipient'] ?? 0;
$patientsIsDischarged = $stats['outcome'] ?? 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; $patientsIsTransferred = $stats['transferred'] ?? 0;
$patientsIsDeceased = $byStatus['deceased'] ?? 0; $patientsIsDeceased = $byStatus['deceased'] ?? 0;