Добавил дополнительные проверки для даты смерти при переводе

This commit is contained in:
brusnitsyn
2026-06-15 10:04:35 +09:00
parent 3a07e96e43
commit 3f51af226e

View File

@@ -424,7 +424,15 @@ class DutyReportService
$hasDeathInPeriod = false;
if (!empty($patient['death_date'])) {
$deathDateCarbon = Carbon::parse($patient['death_date']);
if ($deathDateCarbon >= $periodStartCarbon && $deathDateCarbon <= $periodEndCarbon) {
$deathInPeriod = $deathDateCarbon >= $periodStartCarbon && $deathDateCarbon <= $periodEndCarbon;
// Если пациента выписали/перевели из этого отделения раньше даты смерти,
// значит смерть наступила уже в другом отделении - здесь её не учитываем,
// иначе одна смерть считается в нескольких отделениях (источник + принимающее).
$diedAfterLeavingDepartment = $migrationOutDate
&& Carbon::parse($migrationOutDate)->lt($deathDateCarbon);
if ($deathInPeriod && !$diedAfterLeavingDepartment) {
$hasDeathInPeriod = true;
}
}
@@ -436,7 +444,8 @@ class DutyReportService
// Приоритет: данные из миграции (если есть), иначе из карты
$patientData['visit_result_id'] = $migrationVisitResultId ?? $patient['visit_result_id'] ?? null;
$patientData['extract_date'] = $migrationOutDate ?? $patient['extract_date'] ?? null;
$patientData['death_date'] = $patient['death_date'] ?? null;
// Дату смерти проставляем только если пациент действительно умер в этом отделении
$patientData['death_date'] = $hasDeathInPeriod ? ($patient['death_date'] ?? null) : null;
} else {
$patientData['visit_result_id'] = null;
$patientData['extract_date'] = null;