Исправил перезапись ответственного при повторном сохранении отчета
This commit is contained in:
@@ -17,6 +17,7 @@ use App\Services\Classification\PatientStatusClassifier;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class DutyReportService
|
||||
{
|
||||
@@ -61,15 +62,27 @@ class DutyReportService
|
||||
'rf_user_id' => $user->id,
|
||||
];
|
||||
|
||||
$report = ReportDuty::updateOrCreate(
|
||||
[
|
||||
'report_date' => $data['report_date'],
|
||||
'period_start' => $data['period_start'],
|
||||
'period_end' => $data['period_end'],
|
||||
'rf_department_id' => $data['rf_department_id'],
|
||||
],
|
||||
$data
|
||||
);
|
||||
$reportExists = ReportDuty::where('report_date', $data['report_date'])
|
||||
->where('period_start', $data['period_start'])
|
||||
->where('period_end', $data['period_end'])
|
||||
->where('rf_department_id', $data['rf_department_id'])
|
||||
->exists();
|
||||
|
||||
if ($reportExists) {
|
||||
$data = array_diff_key($data, array_flip(['rf_lpudoctor_id', 'rf_user_id']));
|
||||
$report = ReportDuty::updateOrCreate(
|
||||
[
|
||||
'report_date' => $data['report_date'],
|
||||
'period_start' => $data['period_start'],
|
||||
'period_end' => $data['period_end'],
|
||||
'rf_department_id' => $data['rf_department_id'],
|
||||
],
|
||||
$data
|
||||
);
|
||||
} else {
|
||||
$report = ReportDuty::create($data);
|
||||
}
|
||||
|
||||
|
||||
return $report;
|
||||
}
|
||||
@@ -676,7 +689,7 @@ class DutyReportService
|
||||
$reanimationBatch = [];
|
||||
}
|
||||
}
|
||||
|
||||
Log::info($totalStats);
|
||||
// Сохраняем остаток
|
||||
if (!empty($patientBatch)) {
|
||||
$batchStats = $this->upsertBatches($reportDutyId, $patientBatch, $migrationBatch, $reanimationBatch);
|
||||
@@ -927,13 +940,15 @@ class DutyReportService
|
||||
$byUrgency = $stats['by_urgency'] ?? [];
|
||||
$admitted = $stats['admitted'] ?? [];
|
||||
|
||||
// dd($stats, $statsOverride, !empty($statsOverride['outcome']));
|
||||
|
||||
// === Базовые счётчики ===
|
||||
$patientsIsRecipient = array_key_exists('recipient', $statsOverride) && !empty($statsOverride['recipient'])
|
||||
? $statsOverride['recipient'] : $byStatus['recipient'] ?? 0;
|
||||
$patientsInDepartment = array_key_exists('in_department', $statsOverride) && !empty($statsOverride['in_department'])
|
||||
? $statsOverride['in_department'] : $byStatus['in_department'] ?? 0;
|
||||
$patientsIsDischarged = array_key_exists('outcome', $statsOverride) && !empty($statsOverride['outcome'])
|
||||
? $statsOverride['outcome'] : $byStatus['outcome'] ?? 0;
|
||||
? $statsOverride['outcome'] : $stats['outcome'] ?? 0;
|
||||
$patientsIsTransferred = $stats['transferred'] ?? 0;
|
||||
$patientsIsDeceased = $byStatus['deceased'] ?? 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user