Добавил проверку источника при добавлении пациента и вывод отчетов выбранной мед. сестры

This commit is contained in:
brusnitsyn
2026-06-03 13:56:05 +09:00
parent e758769035
commit 720ca1b39a
8 changed files with 121 additions and 28 deletions

View File

@@ -35,6 +35,7 @@ class NurseReportController extends Controller
$departmentId = $request->query('departmentId') ? (int) $request->query('departmentId') : null;
$department = Department::where('department_id', $departmentId)->firstOrFail();
$dateRange = $this->dateRangeService->getDateRangeFromRequest($request, $user);
$isRangeOneDay = $this->dateRangeService->isRangeOneDay($dateRange->startDate, $dateRange->endDate);
// Проверяем, есть ли отчет за этот период
$isPastPeriod = $this->dateRangeService->isPastPeriod($dateRange);
@@ -43,9 +44,42 @@ class NurseReportController extends Controller
->where('period_end', '<=', $dateRange->endSql())
->exists();
$hasReport = $existsReport && $isPastPeriod;
$isCurrentPeriod = !$isPastPeriod;
$data = $this->unifiedMedicalHistoryService->getGroupedHistories($dateRange, $department->rf_mis_department_id);
$reportsNurse = ReportNurse::where('rf_department_id', $departmentId)
->where('period_start', '>=', $dateRange->startSql())
->where('period_end', '<=', $dateRange->endSql())
->where('rf_lpudoctor_id', $selectedUserId)
->orderBy('period_end', 'desc')
->with(['doctor'])
->get();
$hasNurseReport = $reportsNurse->count() > 0;
$reportNurseIds = $reportsNurse->pluck('id')->toArray();
// Получаем пациентов (источник зависит от периода)
if ($isCurrentPeriod) {
// Для текущего периода - пациенты из МИС
$patients = $this->unifiedMedicalHistoryService->getGroupedHistories(
$dateRange,
$department->rf_mis_department_id,
);
$latestReport = $reportsNurse->first();
} else {
// Для прошедшего периода - данные из отчета
$patients = $hasNurseReport
? $this->nurseMedicalHistoryService->getGroupedHistories(
$dateRange,
$department->rf_mis_department_id,
$reportNurseIds
)
: [];
$latestReport = $reportsNurse->first();
}
//$data = $this->unifiedMedicalHistoryService->getGroupedHistories($dateRange, $department->rf_mis_department_id);
$currentReport = ReportNurse::where('rf_department_id', $departmentId)
->where('period_start', '>=', $dateRange->startSql())
@@ -56,7 +90,8 @@ class NurseReportController extends Controller
$isRangeOneDay = $this->dateRangeService->isRangeOneDay($dateRange->startDate, $dateRange->endDate);
return Inertia::render('Nurse/Report/Index', [
'patients' => $data,
'patients' => $patients,
'latestReport' => $latestReport ?? null,
'reportNurseId' => $currentReport?->id,
'canSaveReport' => $isRangeOneDay && $user->currentRoleCan('nurse.report.create'),
'canEditPastReport' => $user->currentRoleCan('nurse.report.edit.past'),