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

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

@@ -24,9 +24,8 @@ class AverageBedDaysCalculator extends BaseMetricService implements MetricCalcul
->join('metrika_results as mr', 'r.report_id', '=', 'mr.rf_report_id')
->whereIn('r.rf_department_id', $departmentIds)
->where('mr.rf_metrika_item_id', 18)
// ->whereBetween('r.created_at', [$startDate, $endDate])
->where('r.sent_at', '>', $startDate)
->where('r.sent_at', '<=', $endDate)
->where('r.period_start', '>=', $startDate)
->where('r.period_end', '<', $endDate)
->select(
'r.rf_department_id',
DB::raw('AVG(CAST(mr.value AS DECIMAL)) as avg_value')

View File

@@ -24,9 +24,8 @@ class LethalityCalculator extends BaseMetricService implements MetricCalculatorI
->join('metrika_results as mr', 'r.report_id', '=', 'mr.rf_report_id')
->whereIn('r.rf_department_id', $departmentIds)
->whereIn('mr.rf_metrika_item_id', [7, 9])
// ->whereBetween('r.created_at', [$startDate, $endDate])
->where('r.sent_at', '>', $startDate)
->where('r.sent_at', '<=', $endDate)
->where('r.period_start', '>=', $startDate)
->where('r.period_end', '<', $endDate)
->select(
'r.rf_department_id',
'mr.rf_metrika_item_id',

View File

@@ -25,9 +25,8 @@ class PreoperativeDaysCalculator extends BaseMetricService implements MetricCalc
// Получаем отчеты за период
$reports = Report::whereIn('rf_department_id', $departmentIds)
->where('sent_at', '>', $startDate)
->where('sent_at', '<=', $endDate)
// ->whereBetween('created_at', [$startDate, $endDate])
->where('period_start', '>=', $startDate)
->where('period_end', '<', $endDate)
->get(['report_id', 'rf_department_id'])
->keyBy('report_id');