belongsTo(MedicalHistory::class, 'medical_history_id', 'id'); } public function migration() { return $this->belongsTo(MigrationPatient::class, 'migration_patient_id', 'id'); } // Фильтр по подразделению public function scopeDepartment($query, int $departmentId) { return $query->where('migration_department_id', $departmentId); } public function scopeCurrentOrAdmitted($query, DateRange $dateRange) { return $query->where(function ($q) use ($dateRange) { // Вариант А: Пациент уже лежит (текущий) $q->whereNull('out_date') ->whereNotNull('medical_history_id') ->where('in_date', '<', $dateRange->startSql()); }) ->orWhere(function ($q) use ($dateRange) { $q->where('in_date', '<=', $dateRange->endSql()) ->where('in_date', '>', $dateRange->startSql()); }); } }