* изменил таблицы в основном отчете

* изменил метод сохранения пациентов основного отчета
This commit is contained in:
brusnitsyn
2026-05-07 18:00:43 +09:00
parent 723ccee8d3
commit bb9e67ab3d
25 changed files with 1438 additions and 52 deletions

View File

@@ -49,11 +49,43 @@ class MedicalHistoryService
{
return MedicalHistory::query()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->current($dateRange);
$q->department($departmentId)->currentOrAdmitted($dateRange);
})
->with(['latestMigration' => function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->current($dateRange); // подгружаем только отфильтрованные движения
}])
$q->department($departmentId)->currentOrAdmitted($dateRange)->latest('ingoing_date'); // подгружаем только отфильтрованные движения
}, 'latestMigration.operations'])
->get()
// Сортировка по дате поступления в отделение (поле дочерней таблицы)
->sortByDesc(fn ($mh) => $mh->latestMigration->ingoing_date ?? $mh->recipient_date)
->values();
}
public function getPlannedHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange);
})
->with(['latestMigration' => function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange)
->latest('ingoing_date'); // подгружаем только отфильтрованные движения
}, 'latestMigration.operations'])
->urgency(1)
->get()
// Сортировка по дате поступления в отделение (поле дочерней таблицы)
->sortByDesc(fn ($mh) => $mh->latestMigration->ingoing_date ?? $mh->recipient_date)
->values();
}
public function getEmergencyHistories(DateRange $dateRange, int $departmentId)
{
return MedicalHistory::query()
->whereHas('migrations', function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange);
})
->with(['latestMigration' => function ($q) use ($departmentId, $dateRange) {
$q->department($departmentId)->currentOrAdmitted($dateRange)->latest('ingoing_date'); // подгружаем только отфильтрованные движения
}, 'latestMigration.operations'])
->urgency(2)
->get()
// Сортировка по дате поступления в отделение (поле дочерней таблицы)
->sortByDesc(fn ($mh) => $mh->latestMigration->ingoing_date ?? $mh->recipient_date)
@@ -75,7 +107,7 @@ class MedicalHistoryService
})
->with(['latestMigration' => function ($q) use ($departmentId) {
$q->department($departmentId);
}])
}, 'latestMigration.operations'])
->get();
}
@@ -87,7 +119,7 @@ class MedicalHistoryService
})
->with(['latestMigration' => function ($q) use ($departmentId) {
$q->department($departmentId);
}])
}, 'latestMigration.operations'])
->get();
}
@@ -99,7 +131,7 @@ class MedicalHistoryService
})
->with(['latestMigration' => function ($q) use ($departmentId) {
$q->department($departmentId);
}])
}, 'latestMigration.operations'])
->get();
}
@@ -111,7 +143,7 @@ class MedicalHistoryService
})
->with(['latestMigration' => function ($q) use ($departmentId) {
$q->department($departmentId);
}])
}, 'latestMigration.operations'])
->get();
}
}