diff --git a/app/Models/StudyReport.php b/app/Models/StudyReport.php index c46bae2..bc1cf39 100644 --- a/app/Models/StudyReport.php +++ b/app/Models/StudyReport.php @@ -21,10 +21,22 @@ public function radiologist(): BelongsTo return $this->belongsTo(User::class, 'read_by_id'); } - public function updateStatus(ReportStatus $status, User|int|null $user = null): void + public function setStatus(ReportStatus $status, User|int|null $user = null): void { $user_id = me($user)->id; - $params = ['report_status' => $status->value, 'read_by_id' => $user_id]; + $params = ['report_status' => $status->value]; + switch ($status) { + case ReportStatus::Dictated: + $params['dictated_by_id'] = $user_id; + break; + case ReportStatus::Preliminary: + case ReportStatus::Finalized: + $params['read_by_id'] = $user_id; + break; + case ReportStatus::Approved: + $params['approved_by_id'] = $user_id; + break; + } $this->update($params); $params = ['report_status' => $status->value]; diff --git a/database/migrations/2024_12_28_051451_create_study_reports_table.php b/database/migrations/2024_12_28_051451_create_study_reports_table.php index 0715156..3a327e9 100644 --- a/database/migrations/2024_12_28_051451_create_study_reports_table.php +++ b/database/migrations/2024_12_28_051451_create_study_reports_table.php @@ -23,7 +23,7 @@ public function up(): void $table->foreignIdFor(Study::class)->index()->constrained()->cascadeOnDelete(); $table->foreignIdFor(User::class, 'read_by_id')->index()->constrained()->cascadeOnDelete(); - $table->foreignIdFor(User::class, 'dictate_by_id')->index()->nullable()->constrained()->nullOnDelete(); + $table->foreignIdFor(User::class, 'dictated_by_id')->index()->nullable()->constrained()->nullOnDelete(); $table->timestamp('dictated_at')->nullable(); $table->foreignIdFor(User::class, 'approved_by_id')->index()->nullable()->constrained()->nullOnDelete();