Отчет для врача дежурного

This commit is contained in:
Brusnitsyn
2026-07-06 07:37:53 +00:00
parent 1d9fbb362e
commit 7ef20061f0
3 changed files with 179 additions and 34 deletions

View File

@@ -16,13 +16,12 @@ use App\Services\DutyReportService;
use App\Services\MedicalHistoryService;
use App\Services\NurseMedicalHistoryService;
use App\Services\NurseReportService;
use App\Services\StatisticsService;
use App\Services\UnifiedMedicalHistoryService;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Inertia\Inertia;
use Maatwebsite\Excel\Facades\Excel;
class DutyReportController extends Controller
{
@@ -32,7 +31,6 @@ class DutyReportController extends Controller
protected DutyMedicalHistoryService $dutyMedicalHistoryService,
protected DutyReportService $dutyReportService,
protected NurseMedicalHistoryService $nurseMedicalHistoryService,
protected StatisticsService $statisticsService
)
{}
@@ -362,22 +360,38 @@ class DutyReportController extends Controller
}
/**
* Формирование отчета дежурного в Excel
* Формирование отчета дежурного врача в PDF
*/
public function generateReport(Request $request)
{
$user = $request->user();
$queryStartDate = $request->query('startAt');
$queryEndDate = $request->query('endAt');
$queryDepartmentId = $request->query('departmentId', $user->department->department_id);
$department = Department::findOrFail($queryDepartmentId);
[$startDate, $endDate] = $this->dateRangeService->getStatisticsDateRange($user, $queryStartDate, $queryEndDate);
$isRangeOneDay = $this->dateRangeService->isRangeOneDay($startDate, $endDate);
$department = Department::find($queryDepartmentId);
$dateRange = $this->dateRangeService->getDateRangeFromRequest($request, $user);
$finalData = $this->statisticsService->getStatisticsDataForDepartment($department->department_id, $startDate, $endDate, $isRangeOneDay);
$reportDutyIds = ReportDuty::where('rf_department_id', $department->department_id)
->where('period_start', '>=', $dateRange->startSql())
->where('period_end', '<=', $dateRange->endSql())
->pluck('id')
->toArray();
return Excel::download(new DutyReportExport($finalData['data'], [$startDate, $endDate], $user, $department), 'statistics.xlsx');
$patients = $this->dutyMedicalHistoryService->getGroupedHistories(
$dateRange,
$department->rf_mis_department_id,
$reportDutyIds
);
$export = new DutyReportExport(
$patients['data'],
[$dateRange->startDateRaw, $dateRange->endDateRaw],
$user,
$department
);
return Pdf::loadView('reports.duty', $export->toViewData())
->setPaper('a4')
->download('duty-report.pdf');
}
}