Добавил приоритет ввода метрик врача дежурного
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user