Добавил ограничение по отказникам

This commit is contained in:
brusnitsyn
2026-06-17 17:38:48 +09:00
parent fe59410187
commit 839a534bb2
6 changed files with 105 additions and 3 deletions

View File

@@ -35,6 +35,7 @@ class MedicalHistoryService
// 1. Один запрос: получаем "сырые" данные (без вычисляемых статусов)
$all = MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', $periodMigrationFilter)
->when($search, function ($query, $search) {
// Поиск по ФИО (точное совпадение или LIKE)
@@ -143,7 +144,8 @@ class MedicalHistoryService
{
$query = MedicalHistory::query();
$query->where('recipient_date', '>=', $dateRange->startSql())
$query->withoutDenials()
->where('recipient_date', '>=', $dateRange->startSql())
->where('recipient_date', '<', $dateRange->endSql())
// 1. Оставляем только тех пациентов, у которых БЫЛО движение в этом отделении
->whereHas('latestMigration', fn($q) => $q->where('department_id', $departmentId))
@@ -160,7 +162,8 @@ class MedicalHistoryService
{
$query = MedicalHistory::query();
$query->where('recipient_date', '>=', $dateRange->startSql())
$query->withoutDenials()
->where('recipient_date', '>=', $dateRange->startSql())
->where('recipient_date', '<', $dateRange->endSql())
->urgency($urgencyId)
->whereHas('migrations', function ($m) use ($departmentId) {
@@ -179,6 +182,7 @@ class MedicalHistoryService
public function getDepartmentHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange);
})
@@ -194,6 +198,7 @@ class MedicalHistoryService
public function getPlannedHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange);
})
@@ -211,6 +216,7 @@ class MedicalHistoryService
public function getEmergencyHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange);
})
@@ -234,6 +240,7 @@ class MedicalHistoryService
$now = Carbon::now();
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->admitted($dateRange->startSql(), $dateRange->endSql());
})
@@ -246,6 +253,7 @@ class MedicalHistoryService
public function getDischargedHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->discharged($dateRange->startSql(), $dateRange->endSql());
})
@@ -258,6 +266,7 @@ class MedicalHistoryService
public function getDeceasedHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->deceased($dateRange->startSql(), $dateRange->endSql());
})
@@ -270,6 +279,7 @@ class MedicalHistoryService
public function getTransferredHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->transferred($dateRange->startSql(), $dateRange->endSql());
})
@@ -282,6 +292,7 @@ class MedicalHistoryService
public function getReanimationHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->withoutDenials()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange);
})