Добавил дополнительные проверки для даты смерти при переводе
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user