43 lines
1.3 KiB
PHP
43 lines
1.3 KiB
PHP
<?php
|
|
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Konsultasi;
|
|
use App\Services\CertaintyFactorService;
|
|
|
|
class KonsultasiController extends Controller
|
|
{
|
|
public function __construct(private CertaintyFactorService $cfService) {}
|
|
|
|
// Tampilkan semua riwayat konsultasi
|
|
public function index()
|
|
{
|
|
$konsultasi = Konsultasi::with(['hasilUtama.penyakit', 'hasilDiagnosa', 'user'])
|
|
->when(request('search'), fn($q) =>
|
|
$q->where('kode_konsultasi', 'like', '%' . request('search') . '%')
|
|
)
|
|
->latest('tanggal')
|
|
->paginate(15);
|
|
|
|
return view('admin.konsultasi.index', compact('konsultasi'));
|
|
}
|
|
|
|
// Tampilkan detail satu konsultasi beserta log perhitungan CF
|
|
public function show(int $id)
|
|
{
|
|
$konsultasi = Konsultasi::with([
|
|
'hasilDiagnosa.penyakit.solusi',
|
|
'gejalaList.gejala',
|
|
'user',
|
|
])->findOrFail($id);
|
|
|
|
// Hitung ulang untuk mendapatkan detail log CF
|
|
$gejalaIds = $konsultasi->gejalaList->pluck('id_gejala')->toArray();
|
|
$hasilInfer = $this->cfService->hitung($gejalaIds);
|
|
|
|
return view('admin.konsultasi.show', compact('konsultasi', 'hasilInfer'));
|
|
}
|
|
}
|