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