* добавил удаление карты, если она была добавлена не из МИС

* добавил диалог при удалении карты
* добавил сохранение движения
* добавил вывод сохраненного отчета
* изменил логику сохранения отчета
This commit is contained in:
brusnitsyn
2026-05-06 17:03:41 +09:00
parent fe2264dfce
commit 2026a1ca9f
22 changed files with 928 additions and 195 deletions

View File

@@ -94,6 +94,9 @@ class NurseController extends Controller
public function storeCorrection($id, Request $request)
{
$sourceType = $request->patient_source;
$originalId = $request->original_id;
$data = $request->validate([
'medical_card_number' => 'nullable',
'full_name' => 'nullable',
@@ -111,8 +114,12 @@ class NurseController extends Controller
$data['medical_history_id'] = $id;
$data['user_id'] = auth()->user()->id;
$departmentId = auth()->user()->department->rf_mis_department_id;
$currentMigration = MigrationPatient::currentMigration($id);
if ($sourceType === 'mis')
$currentMigration = MigrationPatient::currentMigration($id, $departmentId)->first();
else
$currentMigration = MigrationPatientNurse::currentMigration($originalId, $departmentId)->first();
$migrationData = [
'migration_patient_id' => $currentMigration->id,
@@ -125,8 +132,16 @@ class NurseController extends Controller
DB::beginTransaction();
$historyCorrection = MedicalHistoryCorrection::create($data);
$migrationCorrection = MigrationPatientCorrection::create($migrationData);
if ($sourceType === 'mis') {
$historyCorrection = MedicalHistoryCorrection::create($data);
$migrationCorrection = MigrationPatientCorrection::create($migrationData);
} else if ($sourceType === 'manual') {
unset($data['medical_history_id']);
unset($migrationData['migration_patient_id']);
unset($migrationData['medical_history_id']);
$historyCorrection = MedicalHistoryNurse::find($originalId)->update($data);
$migrationCorrection = MigrationPatientNurse::where('medical_history_id', $originalId)->update($migrationData);
}
if ($historyCorrection && $migrationCorrection) {
DB::commit();
@@ -141,4 +156,19 @@ class NurseController extends Controller
], 400);
}
}
public function deleteHistory($id, Request $request)
{
$medicalHistory = UnifiedMedicalHistory::where('id', $id)->first();
$medicalHistoryId = $medicalHistory->original_id;
$migrationPatientsIds = $medicalHistory->migrations()->pluck('original_id');
foreach ($migrationPatientsIds as $migrationPatientsId) {
MigrationPatientNurse::query()->where('id', $migrationPatientsId)->delete();
}
MedicalHistoryNurse::where('id', $medicalHistoryId)->delete();
return response()->json([]);
}
}

View File

@@ -4,7 +4,9 @@ namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Models\Department;
use App\Models\ReportNurse;
use App\Services\DateRangeService;
use App\Services\NurseMedicalHistoryService;
use App\Services\NurseReportService;
use App\Services\UnifiedMedicalHistoryService;
use Illuminate\Http\Request;
@@ -17,6 +19,7 @@ class NurseReportController extends Controller
protected DateRangeService $dateRangeService,
protected UnifiedMedicalHistoryService $unifiedMedicalHistoryService,
protected NurseReportService $nurseReportService,
protected NurseMedicalHistoryService $nurseMedicalHistoryService
)
{}
@@ -32,11 +35,34 @@ class NurseReportController extends Controller
$department = Department::where('department_id', $departmentId)->firstOrFail();
$dateRange = $this->dateRangeService->getDateRangeFromRequest($request, $user);
$inDepartmentHistories = $this->unifiedMedicalHistoryService->getDepartmentHistories($dateRange, $department->rf_mis_department_id);
$recipientHistories = $this->unifiedMedicalHistoryService->getRecipientHistories($dateRange, $department->rf_mis_department_id);
$dischargedHistories = $this->unifiedMedicalHistoryService->getDischargedHistories($dateRange, $department->rf_mis_department_id);
$deceasedHistories = $this->unifiedMedicalHistoryService->getDeceasedHistories($dateRange, $department->rf_mis_department_id);
$transferredHistories = $this->unifiedMedicalHistoryService->getTransferredHistories($dateRange, $department->rf_mis_department_id);
// Проверяем, есть ли отчет за этот период
$isPastPeriod = $this->dateRangeService->isPastPeriod($dateRange);
$existsReport = ReportNurse::where('rf_department_id', $departmentId)
->where('period_end', '>', $dateRange->startSql())
->where('period_end', '<=', $dateRange->endSql())
->exists();
$hasReport = $existsReport;
if ($hasReport) {
$inDepartmentHistories = $this->nurseMedicalHistoryService->getDepartmentHistories($dateRange, $department->rf_mis_department_id);
$recipientHistories = $this->nurseMedicalHistoryService->getRecipientHistories($dateRange, $department->rf_mis_department_id);
$dischargedHistories = $this->nurseMedicalHistoryService->getDischargedHistories($dateRange, $department->rf_mis_department_id);
$deceasedHistories = $this->nurseMedicalHistoryService->getDeceasedHistories($dateRange, $department->rf_mis_department_id);
$transferredHistories = $this->nurseMedicalHistoryService->getTransferredHistories($dateRange, $department->rf_mis_department_id);
} else if ($this->dateRangeService->isPastPeriod($dateRange)) {
$inDepartmentHistories = collect([]);
$recipientHistories = collect([]);
$dischargedHistories = collect([]);
$deceasedHistories = collect([]);
$transferredHistories = collect([]);
} else {
$inDepartmentHistories = $this->unifiedMedicalHistoryService->getDepartmentHistories($dateRange, $department->rf_mis_department_id);
$recipientHistories = $this->unifiedMedicalHistoryService->getRecipientHistories($dateRange, $department->rf_mis_department_id);
$dischargedHistories = $this->unifiedMedicalHistoryService->getDischargedHistories($dateRange, $department->rf_mis_department_id);
$deceasedHistories = $this->unifiedMedicalHistoryService->getDeceasedHistories($dateRange, $department->rf_mis_department_id);
$transferredHistories = $this->unifiedMedicalHistoryService->getTransferredHistories($dateRange, $department->rf_mis_department_id);
}
return Inertia::render('Nurse/Report/Index', [
'inDepartmentHistories' => $inDepartmentHistories,