This commit is contained in:
Masroor Ehsan 2025-01-08 20:42:28 +06:00
parent 2885fc5c05
commit ec7cc2b80f
2 changed files with 15 additions and 3 deletions

View File

@ -21,10 +21,22 @@ public function radiologist(): BelongsTo
return $this->belongsTo(User::class, 'read_by_id'); 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; $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); $this->update($params);
$params = ['report_status' => $status->value]; $params = ['report_status' => $status->value];

View File

@ -23,7 +23,7 @@ public function up(): void
$table->foreignIdFor(Study::class)->index()->constrained()->cascadeOnDelete(); $table->foreignIdFor(Study::class)->index()->constrained()->cascadeOnDelete();
$table->foreignIdFor(User::class, 'read_by_id')->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->timestamp('dictated_at')->nullable();
$table->foreignIdFor(User::class, 'approved_by_id')->index()->nullable()->constrained()->nullOnDelete(); $table->foreignIdFor(User::class, 'approved_by_id')->index()->nullable()->constrained()->nullOnDelete();