Отчет для врача дежурного
This commit is contained in:
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user