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

* оптимизация обновления при редактировании спец контингента
* добавил поддержку заключительных диагнозов
* изменил определение законченной операции
* добавил поддержку исхода операции
* добавил определение отмены для операции через назначение
* работа над диапазонами календарей, подсчет статистики
* добавил статусы отчетов и подкорректировал привязку спец контингента к отчету
* добавил новые сервисы для будущего кеширования
* частичное разделение логики подсчета пациентов
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

@@ -45,12 +45,12 @@ class FillAverageBedDaysMetric extends Command
// Filter by date range
if ($from = $this->option('from')) {
$query->whereDate('created_at', '>=', $from);
$query->where('period_start', '>=', Carbon::parse($from, 'Asia/Yakutsk')->startOfDay()->format('Y-m-d H:i:s'));
$this->info("Filter: from {$from}");
}
if ($to = $this->option('to')) {
$query->whereDate('created_at', '<=', $to);
$query->where('period_end', '<', Carbon::parse($to, 'Asia/Yakutsk')->addDay()->startOfDay()->format('Y-m-d H:i:s'));
$this->info("Filter: to {$to}");
}
@@ -147,10 +147,10 @@ class FillAverageBedDaysMetric extends Command
// Apply same filters to sample
if ($from = $this->option('from')) {
$sampleQuery->whereDate('created_at', '>=', $from);
$sampleQuery->where('period_start', '>=', Carbon::parse($from, 'Asia/Yakutsk')->startOfDay()->format('Y-m-d H:i:s'));
}
if ($to = $this->option('to')) {
$sampleQuery->whereDate('created_at', '<=', $to);
$sampleQuery->where('period_end', '<', Carbon::parse($to, 'Asia/Yakutsk')->addDay()->startOfDay()->format('Y-m-d H:i:s'));
}
if ($departmentId = $this->option('department')) {
$sampleQuery->where('rf_department_id', $departmentId);

View File

@@ -56,12 +56,12 @@ class RecalculatePreoperativeMetric extends Command
// Фильтр по дате
if ($from = $this->option('from')) {
$query->whereDate('created_at', '>=', $from);
$query->where('period_start', '>=', Carbon::parse($from, 'Asia/Yakutsk')->startOfDay()->format('Y-m-d H:i:s'));
$this->info("📅 Фильтр: с {$from}");
}
if ($to = $this->option('to')) {
$query->whereDate('created_at', '<=', $to);
$query->where('period_end', '<', Carbon::parse($to, 'Asia/Yakutsk')->addDay()->startOfDay()->format('Y-m-d H:i:s'));
$this->info("📅 Фильтр: по {$to}");
}