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

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