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

This commit is contained in:
brusnitsyn
2026-06-10 09:57:30 +09:00
parent 1eb3cfd918
commit dbbe28bfb2

View File

@@ -372,14 +372,18 @@ class DutyReportService
} }
} }
// Выбытие в периоде (есть out_date в периоде) // Умер в периоде
if ($outDate && $this->dateRangeService->dateInPeriod($outDate, $dateRange)) { if (!empty($patient['death_date'])) {
// Смерть (коды 5, 15 - умер в стационаре) $deathDateCarbon = Carbon::parse($patient['death_date']);
if (in_array($visitResultId, [5, 15])) { if ($deathDateCarbon >= $periodStartCarbon && $deathDateCarbon <= $periodEndCarbon) {
$hasDeathInPeriod = true; $hasDeathInPeriod = true;
} }
}
// Выбытие в периоде (есть out_date в периоде)
if ($outDate && $this->dateRangeService->dateInPeriod($outDate, $dateRange)) {
// Перевод (коды 4, 14) // Перевод (коды 4, 14)
elseif (in_array($visitResultId, [4, 14])) { if (in_array($visitResultId, [4, 14])) {
$hasTransferInPeriod = true; $hasTransferInPeriod = true;
} }
// Выписка // Выписка
@@ -645,16 +649,24 @@ class DutyReportService
// Модифицируем patientBatch перед сохранением // Модифицируем patientBatch перед сохранением
$filteredPatientBatch = array_map(function($patient) use ($reportDutyId, $reportDate) { $filteredPatientBatch = array_map(function($patient) use ($reportDutyId, $reportDate) {
// Очищаем death_date, если она есть // Очищаем death_date, если она есть
// (заплатка для данных из МИС - бывает что дата смерти не устанавливается)
// Пример карт - 329609 и 325529
if (!empty($patient['death_date'])) { if (!empty($patient['death_date'])) {
// Проверяем, была ли смерть на момент отчета
$deathDate = Carbon::parse($patient['death_date']); $deathDate = Carbon::parse($patient['death_date']);
$extractDate = Carbon::parse($patient['extract_date']); } else {
$deathDate = Carbon::parse($patient['extract_date']);
}
$visitResultId = $patient['visit_result_id'];
if (in_array($visitResultId, [5, 15])) {
// Если дата смерти ПОЗЖЕ даты отчета - удаляем // Если дата смерти ПОЗЖЕ даты отчета - удаляем
if ($deathDate->gt($reportDate)) { if ($deathDate->gt($reportDate)) {
$patient['death_date'] = null; $patient['death_date'] = null;
} else {
// Если дата смерти в тот же день или раньше - оставляем
$patient['death_date'] = $deathDate;
} }
// Если дата смерти в тот же день или раньше - оставляем
} }
// extract_date оставляем всегда (это дата перевода/выбытия из отделения) // extract_date оставляем всегда (это дата перевода/выбытия из отделения)