Files
onboard/app/Infrastructure/Database/Repositories/ReportDutyObservablePatients.php
2026-07-31 17:19:03 +09:00

42 lines
2.0 KiB
PHP

<?php
namespace App\Infrastructure\Database\Repositories;
use App\Domain\ReportDuty\Contracts\ReportDutyObservablePatientsInterface;
use App\Domain\ReportDuty\Models\ReportDuty;
use App\Models\ObservableMedicalHistory;
use Illuminate\Support\LazyCollection;
class ReportDutyObservablePatients implements ReportDutyObservablePatientsInterface
{
public function upsertObservations(ReportDuty $report, array $observables): ?LazyCollection
{
foreach ($observables as $observable) {
ObservableMedicalHistory::updateOrCreate([
'original_id' => $observable['original_id'] ?? $observable['id'],
'source_type' => $observable['source_type'] ?? 'mis',
'observable_in' => $observable['observable_in'] ?? $report->period_start,
], [
'source_type' => $observable['source_type'] ?? 'mis',
'original_id' => $observable['original_id'] ?? $observable['id'],
'observable_in' => $observable['observable_in'] ?? $report->period_start,
'observable_out' => $observable['observable_out'] ?? null,
'observable_reason' => $observable['observable_reason'],
'out_reason' => $observable['out_reason'] ?? null,
'medical_card_number' => $observable['medical_card_number'],
'full_name' => $observable['full_name'],
'birth_date' => $observable['birth_date'],
'recipient_date' => $observable['recipient_date'],
'extract_date' => $observable['extract_date'],
'death_date' => $observable['death_date'],
'male' => $observable['male'],
'urgency_id' => $observable['urgency_id'],
'hospital_result_id' => $observable['hospital_result_id'],
'visit_result_id' => $observable['visit_result_id'],
'comment' => $observable['observable_reason'],
'user_id' => $report->rf_user_id,
]);
}
}
}