* добавил исход спец контингенту

* оптимизация обновления при редактировании спец контингента
* добавил поддержку заключительных диагнозов
* изменил определение законченной операции
* добавил поддержку исхода операции
* добавил определение отмены для операции через назначение
* работа над диапазонами календарей, подсчет статистики
* добавил статусы отчетов и подкорректировал привязку спец контингента к отчету
* добавил новые сервисы для будущего кеширования
* частичное разделение логики подсчета пациентов
This commit is contained in:
brusnitsyn
2026-04-22 20:35:39 +09:00
parent 2041ab54ea
commit 719eb1403f
39 changed files with 1458 additions and 763 deletions

View File

@@ -39,6 +39,34 @@ class DateRangeService
);
}
/**
* Получить диапазон дат для страницы /report:
* всегда сутки (07:00 предыдущего дня -> 07:00 выбранного дня)
*/
public function getReportDateRangeFromRequest(Request $request, User $user): DateRange
{
$endAtInput = $request->query('endAt', $request->get('endAt'));
$startAtInput = $request->query('startAt', $request->get('startAt'));
$endDate = $endAtInput
? $this->parseDate($endAtInput)
: Carbon::now('Asia/Yakutsk');
$startDate = $startAtInput
? $this->parseDate($startAtInput)
: Carbon::now('Asia/Yakutsk');
$endDate = $endDate->copy()->setTime(7, 0);
$startDate = $startDate->copy()->subDay()->setTime(7, 0);
return new DateRange(
startDate: $startDate,
endDate: $endDate,
startDateRaw: $startDate->format('Y-m-d H:i:s'),
endDateRaw: $endDate->format('Y-m-d H:i:s'),
isOneDay: true
);
}
/**
* Получить диапазон дат для статистики (по умолчанию с начала года)
*/
@@ -56,6 +84,7 @@ class DateRangeService
// По умолчанию: с начала года до сегодня
$startDate = Carbon::now('Asia/Yakutsk')
->startOfYear() // 1 января текущего года
->subDay()
->setTime(7, 0);
$endDate = Carbon::now('Asia/Yakutsk')