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

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

@@ -2,6 +2,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Carbon;
@@ -29,6 +30,32 @@ class Report extends Model
'status',
];
protected $casts = [
'created_at' => 'datetime',
'sent_at' => 'datetime',
'period_start' => 'datetime',
'period_end' => 'datetime',
];
public function scopeWithinPeriod(Builder $query, string $startAt, string $endAt): Builder
{
return $query
->where('period_start', '>=', $startAt)
->where('period_start', '<=', $endAt);
}
public function scopeExactPeriod(Builder $query, string $startAt, string $endAt): Builder
{
return $query
->where('period_start', '>=', $startAt)
->where('period_end', '<=', $endAt);
}
public function scopeOnlySubmitted(Builder $query): Builder
{
return $query->where('status', 'submitted');
}
public function metrikaResults(): \Illuminate\Database\Eloquent\Relations\HasMany
{
return $this->hasMany(MetrikaResult::class, 'rf_report_id', 'report_id');