Работа над журналом для ст. мед сестер

This commit is contained in:
brusnitsyn
2026-05-04 17:11:16 +09:00
parent f107ebd167
commit 7a58812072
61 changed files with 3532 additions and 1163 deletions

View File

@@ -0,0 +1,57 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\MedicalHistory;
use App\Models\MedicalHistoryNurse;
use Illuminate\Http\Request;
class NurseController extends Controller
{
public function getPatient($id, Request $request)
{
return MedicalHistory::where('id', $id)->first();
}
public function searchPatients(Request $request)
{
$search = $request->search;
return MedicalHistory::whereLike('full_name', $search . '%')
->orderBy('recipient_date', 'desc')
->get()->map(function ($item) {
return [
'label' => "$item->medical_card_number - $item->full_name",
'value' => $item->id
];
});
}
public function storePatient(Request $request)
{
$data = $request->validate([
'source_type' => 'nullable',
'medical_card_number' => 'nullable',
'full_name' => 'required',
'birth_date' => 'required',
'recipient_date' => 'required',
'extract_date' => 'nullable',
'death_date' => 'nullable',
'male' => 'nullable',
'urgency_id' => 'required',
'hospital_result_id' => 'nullable',
'visit_result_id' => 'required',
'mis_user_id' => 'nullable',
'comment' => 'nullable',
]);
$data['user_id'] = auth()->user()->id;
$result = MedicalHistoryNurse::create($data);
return response()->json([
'data' => $result,
], 201);
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Models\Department;
use App\Services\DateRangeService;
use App\Services\MedicalHistoryService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Inertia\Inertia;
class NurseReportController extends Controller
{
public function __construct(
protected DateRangeService $dateRangeService,
protected MedicalHistoryService $medicalHistoryService
)
{}
/**
* Получение базовой информации для заполнения отчета от роли мед. сестра
* @param Request $request
* @return \Inertia\Response
*/
public function index(Request $request)
{
$user = Auth::user();
$departmentId = $request->query('departmentId', $user->department->department_id);
$department = Department::where('department_id', $departmentId)->firstOrFail();
$dateRange = $this->dateRangeService->getDateRangeFromRequest($request, $user);
$inDepartmentHistories = $this->medicalHistoryService->getDepartmentHistories($dateRange, $department->rf_mis_department_id);
$recipientHistories = $this->medicalHistoryService->getRecipientHistories($dateRange, $department->rf_mis_department_id);
$dischargedHistories = $this->medicalHistoryService->getDischargedHistories($dateRange, $department->rf_mis_department_id);
$deceasedHistories = $this->medicalHistoryService->getDeceasedHistories($dateRange, $department->rf_mis_department_id);
$transferredHistories = $this->medicalHistoryService->getTransferredHistories($dateRange, $department->rf_mis_department_id);
return Inertia::render('Nurse/Report/Index', [
'inDepartmentHistories' => $inDepartmentHistories,
'recipientHistories' => $recipientHistories,
'dischargedHistories' => $dischargedHistories,
'deceasedHistories' => $deceasedHistories,
'transferredHistories' => $transferredHistories,
'dates' => [
$dateRange->startDate->getTimestampMs(),
$dateRange->endDate->getTimestampMs(),
]
]);
}
/**
* Сохранение отчета от роли мед. сестра
* @return void
*/
public function store()
{
}
}