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

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

@@ -3,10 +3,12 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use LaravelIdea\Helper\App\Models\_IH_MisSurgicalOperation_QB;
class MisSurgicalOperation extends Model
{
private const COMPLETED_OPERATION_STATUS_ID = 3;
private const CANCELLED_OPERATION_STATUS_ID = 4;
protected $table = 'stt_surgicaloperation';
protected $primaryKey = 'SurgicalOperationID';
@@ -26,10 +28,47 @@ class MisSurgicalOperation extends Model
return $this->hasOne(MisOperationPurpose::class, 'rf_SurgicalOperationID', 'SurgicalOperationID');
}
/**
* Получить операции у которых исход <> 0
* @param $query
* @return _IH_MisSurgicalOperation_QB|_IH_MisSurgicalOperation_QB
*/
public function scopeCompleted($query)
{
return $query->whereNot('rf_OperationResultID', 0);
}
/**
* Получить операции с благоприятным исходом
* @param $query
* @return _IH_MisSurgicalOperation_QB|_IH_MisSurgicalOperation_QB
*/
public function scopePositiveResult($query)
{
return $query->where('rf_OperationResultID', 1);
}
/**
* Получить операции с неблагоприятным исходом
* @param $query
* @return _IH_MisSurgicalOperation_QB|_IH_MisSurgicalOperation_QB
*/
public function scopeNotPositiveResult($query)
{
return $query->where('rf_OperationResultID', 2);
}
/**
* Получить отмененные операции через назначение
* @param $query
* @return _IH_MisSurgicalOperation_QB
*/
public function scopeCanceled($query)
{
return $query->whereHas('operationPurpose', function ($purposeQuery) {
$purposeQuery->where('rf_OperationStatusID', self::COMPLETED_OPERATION_STATUS_ID);
$purposeQuery->where('rf_OperationStatusID', self::CANCELLED_OPERATION_STATUS_ID);
});
}
}